2011-10-18 88 views
0

我已經習慣了在Solaris上編譯64位的C程序,但現在當我看到編譯AIX上的同一個應用程序,我抓我的頭,在那裏我能找到相應的位置之一:AIX上沒有/ usr/lib/64?

  • /usr/sfw/lib/64
  • /usr/lib/64

所以typicalliy我的編譯(不鏈接)會像上Solaric SPARC以下。

gcc -m64 -R/usr/lib/64 -Wall -g -c -I./include -fPIC ./test.c -o ./test.o 

這是用於Solaris SPARC 8

我工作的AIX 6.1。 ...

任何想法如何在AIX上工作?

+0

現代的AIX有32位的庫嗎?當'a.out'是Hello World的二進制文件時,'file a.out'告訴你什麼? –

+0

還有一件事,我如何判斷AIX上的共享庫是ELFCLASS64還是不是?意思是如果我在/ usr/lib中運行以下命令:「file libtalloc.so」--->只是返回「libtalloc.so:可執行文件(RISC System/6000)或目標模塊未被刪除」。這對ELFCLASS64等有什麼意義?我認爲它是64位? –

+0

嗨larsmans,感謝您的評論...... AIX上的GCC仍然具有「-maix64」選項的事實告訴我,您可以同時擁有64位和32位應用程序。我只是在等待libgcc被安裝,然後我會嘗試「文件a.out」... thnx ;-) –

回答

1

務必:

AR -X 32_64 /lib/libc.a

,並注意輸出經文沒有-X 32_64。每個庫都有32位和64位的對象。這些工具假設您需要32位對象,但您可以通過環境變量或命令行選項更改該默認值。