當前位置:首頁 » 編程軟體 » aixgcc編譯

aixgcc編譯

發布時間: 2022-05-08 12:02:42

Ⅰ 請教:一般的SOCKET在AIX中如何編譯

開源的gcc自然可以算是最佳選擇。在64位平台的AIX中,如果選擇運用 gcc來編譯perl源代碼,默認情況下是編譯成32位的版本。這樣在編譯DBD::Oracle的時候也須要選擇正確的32位庫,否則不能編譯成功。

Ⅱ 怎樣設置gcc編譯出程序的struct member align

為了解決Unix自定義結構在GCC優化編譯中對齊問題,一般解決辦法是用如下宏封裝
自定義結構

#pragma pack(1)

struct my_arphdr
{
};

#pragma pack()

如果是SPARC/Solaris,還可以這樣

struct my_arphdr
{
} __attribute__ ((packed));

兩種辦法其實都可以用在Unix系統/GCC編譯器中。

D: mbuf@smth

關於結構中位元組對齊問題,相應編譯器選項為

GCC/G++ : -fpack-struct
Sun Workshop cc/CC: -misalign

最好不這樣做,會大大降低程序效率,特別在某些架構中。應該嘗試用位操作來處理。

D: Unknown@smth

GCC可以這么解決

#ifdef __GCC__
#define PACKED __attribute__((__packed__))
#else
#define PACKED
#endif

struct msg
{
u_int16_t PACKED first;
...
};

還是 VC 簡單,#include <pshpack1.h> 就搞定了

A: gfh_nuaa

DEC : #pragma pack(1)
SUN : #pragma pack(1)
AIX : 編譯時 -q align=packed
HP-UX : #pragma pack 1

D: Joe Durusau

在 Visual C++ 中,使用 "-ZP1" 就可以讓編譯器對自定義結構進行單位元組對齊,實
際就是取消了對齊優化。

A: [email protected] 2001-12-20 13:09

1) 結構內部成員的pack

struct foo
{
char a;
int b __attribute__ ((packed));
};

2) 整個結構的pack

struct foo
{
char a;
int b;
}__attribute__ ((packed));

3) 文件范圍的pack

#pragma pack(1)

struct foo
{
char a;
int b;
};

... ...

4) 編譯選項的pack

-fpack-struct

但這是最危險的做法,因為這樣做可能會使庫函數和你的程序對結構內成員的偏移理
解不一致。

Ⅲ AIX下gcc編譯器怎麼使用動態連接庫

鏈接靜態庫其實從某種意義上來說也是一種粘貼復制,只不過它操作的對象是目標代碼而不是源碼而已。因為靜態庫被鏈接後庫就直接嵌入可執行文件中了,這樣就帶來了兩個問題。
首先就是系統空間被浪費了。這是顯而易見的,想像一下,如果多個程序鏈接了同一個庫,則每一個生成的可執行文件就都會有一個庫的副本,必然會浪費系統空間。
再者,人非聖賢,即使是精心調試的庫,也難免會有錯。一旦發現了庫中有bug,挽救起來就比較麻煩了。必須一一把鏈接該庫的程序找出來,然後重新編譯。
而動態庫的出現正彌補了靜態庫的以上弊端。因為動態庫是在程序運行時被鏈接的,所以磁碟上只須保留一份副本,因此節約了磁碟空間。如果發現了bug或要升級也很簡單,只要用新的庫把原來的替換掉就行了。

Ⅳ 在AIX上編個gcc怎麼就那麼難

AIX上使用gcc和g++的一個編譯問題的解決 - 人丑就要多讀書,人窮...

Ⅳ 我在AIX6.1上安裝的是gcc4.2.0的版本,在編譯一段程序的時候報g++: Internal error: Segmentation fault

我給個建議,如果寫個c++的helloworld.cpp編譯不了,那就估計是編譯器問題,否則就是代碼問題。編譯器問題無非是刪除,重新安裝文檔安裝。

Ⅵ AIX里怎麼安裝CC編譯器

你要安裝的是IBM的xlc嗎?還是gcc編譯器?

如果是xlc,首先在操作系統中安裝依賴的文件集,比如bos.adt等等。

然後使用installp命令或者smit installp快捷菜單安裝xlc,如果依賴的文件集沒有安裝,安裝信息會有提示,並報錯。

如果是gcc編譯器,請按照gcc的說明文檔編譯安裝。

Ⅶ 新手入門:AIX下如何用命令行編譯並執行一個C程序GCC和CC的區別是什麼

謝謝! 明天我去試一下。另外,在AIX下我輸入:gcc -v 想查看GCC版本號,提示GCC不存在,但是輸入:cc -v 則提示IBM XLC的版本信息,不知道這個是什麼原因 ?

Ⅷ aix系統編譯make

換gmake試一下

gmake是GNU Make的縮寫。 Linux系統環境下的make就是GNU Make,之所以有gmake,是因為在別的平台上,make一般被佔用,GNU make只好叫gmake了。 比如在安裝二進制文件進行編譯時要使用make命令,但如果在Solaris或其他非GNU系統中運行,必須使用GNU make,而不是使用系統自帶的make版本,這時要用gmake代替make進行編譯

Ⅸ 有哪位大哥在aix上用過tuxedo啊,最好是用gcc編譯器

一般建議使用tuxedo的buildserver命令編譯生成可執行文件,而不是直接cc/gcc,如果有特殊考慮必須直接使用cc/gcc,需使用-I、-L、-l參數後跟相應選項指明Tuxedo頭文件所在目錄、庫文件所在目錄、庫文件;使用buildserver命令編譯時,如果希望調用gcc而不是預設的cc,可先設置環境變數CC=gcc

Ⅹ 如何在aix上安裝gcc,g++編譯器的相關推薦

AIX 上的C編譯器基本都是收費的。

熱點內容
吃雞最佳配置怎麼看 發布:2025-05-14 00:25:32 瀏覽:225
oraclesql效率 發布:2025-05-14 00:17:40 瀏覽:601
cifjava代碼 發布:2025-05-14 00:10:34 瀏覽:212
泰國電視劇密碼在哪裡看 發布:2025-05-13 23:54:22 瀏覽:481
安卓用郵件下完保存在哪裡 發布:2025-05-13 23:52:31 瀏覽:479
解壓美食蛋糕 發布:2025-05-13 23:36:25 瀏覽:354
php含有字元 發布:2025-05-13 23:32:08 瀏覽:184
如何找出蘋果手機已連接wifi密碼 發布:2025-05-13 23:22:52 瀏覽:264
ie10緩存 發布:2025-05-13 23:10:09 瀏覽:459
安卓手機圖標怎麼設置提示 發布:2025-05-13 23:07:56 瀏覽:810