導航:首頁 > 源碼編譯 > AIX編譯選項大全

AIX編譯選項大全

發布時間:2022-04-14 13:24:29

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

謝謝! 明天我去試一下。另外,在AIX下我輸入:gcc -v 想查看GCC版本號,提示GCC不存在,但是輸入:cc -v 則提示IBM XLC的版本信息,不知道這個是什麼原因 ?閣下說得沒錯,果然可以編譯。 不過我還是不太明白 gcc / cc / xlc / c89 他們之間的概念是一個什麼樣的區別,能再說一下嗎 ?謝謝!

② AIX 下makefile 編譯問題

環境變數沒有定義好。

echo $cc

看看定義了沒。

也就是你的編譯器。

③ 如何在aix環境下生成動態鏈接庫

libwrapper.so: $(libwrapper_so_OBJECTS)
@echo ${COMPILE}
@echo $(libwrapper_so_OBJECTS)
${COMPILE} -shared $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so
# ${COMPILE} -qmkshrobj $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so

linux下編譯沒有問題,但是在AIX下編譯會報如下錯誤
xlc -DAIX -c -I/usr/java14/include -I/usr/java14/include/aix wrapperinfo.c
xlc -DAIX -shared wrapperjni_unix.o wrapperinfo.o wrapperjni.o -o ../../lib/libwrapper.so
ld: 0706-012 The -h flag is not recognized.
ld: 0706-012 The -a flag is not recognized.
gmake: *** [libwrapper.so] Error 255

百思不得其解,網上一查,很多類似情況,但都沒有解決方法,最後試著將Makefile修改如下
libwrapper.so: $(libwrapper_so_OBJECTS)
@echo ${COMPILE}
@echo $(libwrapper_so_OBJECTS)
# ${COMPILE} -shared $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so
${COMPILE} -qmkshrobj $(libwrapper_so_OBJECTS) -o $(LIB)/libwrapper.so
編譯通過,問題解決。
現在來想,可能是AIX下生成動態庫使用的編譯器選項為-qmkshrobj,而不是-shared造成的。
至於報-h和-a選項標識錯誤,估計是連接器不認識-shared選項,故而當作-s,-h,-a,-r,-e,-d選項來對待,
而恰巧支持-s,-r,-e選項,而不支持-h,-a選項,所以出現該錯誤。

④ 如何 在AIX中編譯Perl

開源的gcc自然可以算是最佳選擇。在64位平台的AIX中,如果選擇運用 gcc來編譯perl源代碼,默認情況下是編譯成32位的版本。這樣在編譯DBD::Oracle的時候也須要選擇正確的32位庫,否則不能編譯成功。也可以選擇將Perl編譯成64位的,這樣在64位平台上應該更方便些,很多依賴庫的路徑運用默認即可。編譯成32位Perl$./Configure -des -Dprefix=/opt/perl -Dcc=gcc $make && make install 編譯成64位Perl$./Configure -des -Dprefix=/opt/perl -Dcc='gcc -maix64' $make && make install 註:gcc在linux下64位編譯選項為-m64,在HP-UX下64位編譯選項為-mlp64。不同平台下須要編譯64位程序,選用不同的選項即可。為了確認編譯後的版本,可以運用 -V選項運行perl:$./perl -V Summary of my perl5 (revision 5 version 10 subversion 1) configuration: Platform. sname=aix, svers=5.3.0.0, archname=aix-64all uname='aix dbtest 3 5 00cad8cf4c00 ' config_args='-des -Dprefix=/opt/perl -Dcc=gcc -maix64' hint=recommended, useposix=true, d_sigaction=define useithreads=undef, usemultiplicity=undef useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef use64bitint=define, use64bitall=define, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc -maix64 -maix64', ccflags ='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -fno-strict-aliasing -pipe -maix64 -DUSE_64_BIT_ALL', ptimize='-O', cppflags='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -DUSE_NATIVE_DLOPEN -fno-strict-aliasing -pipe' ccversion='', gccversion='4.2.0', gccosandvers=''

⑤ AIX系統中xlc和XLC命令怎麼用示範一下,比如Hello.cpp怎麼編譯和執行

BITS=32
INCLDIR=../incl
CC=xlC
CCFLAGS=-qstaticinline -q${BITS} -c -I$(INCLDIR)
$(CC) $(CCFLAGS) hello.cpp

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

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

⑦ aix環境下如何編譯內嵌sql, 資料庫是db2,ec結尾文件

查看環境變數 db2set 如果發現db2set中db2codepage不是819,執行以下是代碼片段:db2set db2codepage=819
db2 create database test05 on /home/db2inst1
db2 connect to test05 user db2inst1 using db2 創建對應pagesize大小的緩沖池和表空間以下是代碼片段:db2 CREATE Bufferpool USER8 SIZE 1000 PAGESIZE 8K
db2 CREATE Bufferpool USER16 SIZE 1000 PAGESIZE 16 K
db2 CREATE Bufferpool USER32 SIZE 1000 PAGESIZE 32 K
db2stop force ( 可以先用:db2stop 、db2 terminate進行停止)db2startdb2 connect to test05 user db2inst1 using db2
db2 "CREATE REGULAR TABLESPACE TS_USER8 PAGESIZE 8K MANAGED BY SYSTEM USING ('FSMS_8K_1') BUFFERPOOL USER8"
db2 "CREATE REGULAR TABLESPACE TS_USER16 PAGESIZE 16K MANAGED BY SYSTEM USING ('FSMS_16K_1') BUFFERPOOL USER16"
db2 "CREATE REGULAR TABLESPACE TS_USER32 PAGESIZE 32K MANAGED BY SYSTEM USING 創建臨時表空間(用於緩沖查詢結果或者臨時表)以下是代碼片段:db2 CREATE Bufferpool TMPBUF8 SIZE 10000 PAGESIZE 8K
db2 "CREATE TEMPORARY TABLESPACE TempTS_USER8 PAGESIZE 8K MANAGED BY 給相關用戶付許可權以下是代碼片段:db2 GRANT DBADM,CREATETAB,BINDADD,CONNECT,LOAD ON DATABASE TO USER EASYMIS
db2 GRANT USE OF TABLESPACE TS_USER8 TO easymis
db2 GRANT USE OF TABLESPACE TS_USER16 TO easymis
db2 GRANT USE OF TABLESPACE TS_USER32 TO easymis 開始創建表、創建(這種方式是直接創建表、視圖的方式,如果採用db2move的方式,那麼則不需要)以下是代碼片段:db2 connect to test05 user easymis using easymis
db2 -f dbstruct.sql >crttab.log
db2 -f view.sql >crtviw.log 恢復db2move備份的資料庫(備份的過程參見後面的db2move的說明)以下是代碼片段:db2move test05 import -l /home/db2inst1/wk/test04
db2 -tvf view.sql >crtview.log #如果腳本是db2look,命令結束符為分號,行結束無特殊符號

⑧ 如何在AIX系統下編譯c或c++源文件,具體說明一下。謝謝各位高手。

用vi test.c編輯一個測試文件,如:
#include <stdio.h>
int main()
{
printf("Hello world!\n");
return 0;
}
然後保存退出
輸入 cc test.c其會在當前目錄生成a.out
換名mv a.out test
或者 cc -o test test.c也可

⑨ aix系統編譯make

換gmake試一下

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

⑩ 怎麼在aix里編譯.sql文件

先檢查你的編譯器是什麼編譯器: 看是gcc還是cc,下面是cc版本的 編譯成32位版本: cc -q32 -qmkshrobj -o XXXXXX.so XXXXXX.c 編譯成64位版本: cc -q64 -qmkshrobj -o XXXXXX.so XXXXXX.c

閱讀全文

與AIX編譯選項大全相關的資料

熱點內容
mysqlphp變數 瀏覽:287
雲開發小程序源碼視頻激勵 瀏覽:817
python的pandas庫怎麼導入 瀏覽:720
計算機現在常用的加密方法 瀏覽:516
工資滿月演算法 瀏覽:340
linux開啟80埠命令 瀏覽:116
php銀行支付 瀏覽:816
java內存模型與線程 瀏覽:73
遼寧存儲伺服器雲空間 瀏覽:849
程序員看能力還是看學歷 瀏覽:28
查看壓縮包格式 瀏覽:868
android仿微信相冊 瀏覽:881
想換手機沒錢有什麼app 瀏覽:873
我的世界裡的命令方塊 瀏覽:572
找附近民宿什麼app好 瀏覽:137
什麼app能把app移到另一個手機上 瀏覽:385
車帝下載不了app是什麼原因 瀏覽:953
libpnglinux安裝 瀏覽:971
公交什麼app有折扣 瀏覽:563
模擬器文件夾的文件如何復制出來 瀏覽:574