2010-02-19 93 views
2

我正嘗試構建一個非本機體系結構的C庫。我正在運行OSX 10.6(這是x86_64),但我需要爲i386編譯的庫。通常情況下,你可以添加編譯器標誌:-arch i386。但是我使用的是Autoconf,它在配置文件中忽略了它,如果我嘗試運行,它也會忽略它:./configure CC =「gcc -arch i386」。Autoconf忽略編譯器標記

我知道它的構建x86_64目標文件,因爲我使用otool查看了標題。真正的啓發是,當autoconf寫出配置摘要時,它會在cc標記中列出-arch i386。這裏發生了什麼??

規格:

OSX 10.6.2

GCC 4.2.1

的autoconf 2.64

使3.81

回答

0

您需要將其設置在CFLAGS環境變量,autoconf的應該附加到它決定CFLAGS應該。如果您輸入./configure --help,則應該列出所有有影響的環境變量。

1

假設「CFLAGS =' - arch i386'是你的意思,當你說」通常,你可以添加編譯器標誌「,我最好的猜測是代碼的維護者在配置中做了錯誤.ac並覆蓋CFLAGS。檢查configure.ac(或configure.in,如果項目是舊的)並查看它們是否明確分配給CC或CFLAGS。同時檢查Makefile.am以獲得分配。機會是錯誤的。你所做的應該是有效的。