我正在使用Mac OS X 10.8.2,並且正在使用scons編譯器編譯我的代碼。 我正在使用32位xerces-c數據庫版本2.8.0。使用scons編譯器編譯C++
當我試圖建立我得到的錯誤:
$scons scons: Reading SConscript files ... scons: done reading SConscript files. scons: Building targets ... ld: warning: ignoring file /usr/xerces-c_2_8_0-x86-macosx-gcc_4_0/lib/libxerces-c.dylib, file was built for unsupported file format (0xce 0xfa 0xed 0xfe 0x 7 0x 0 0x 0 0x 0 0x 3 0x 0 0x 0 0x 0 0x 6 0x 0 0x 0 0x 0) which is not the architecture being linked (x86_64): /usr/xerces-c_2_8_0-x86-macosx-gcc_4_0/lib/libxerces-c.dylib ld: symbol(s) not found for architecture x86_64 collect2: ld returned 1 exit status scons: *** [wntevo] Error 1 scons: building terminated because of errors.
我檢查了我libxerces-c.28.0.dylib文件:
$file libxerces-c.28.0.dylib libxerces-c.28.0.dylib: Mach-O dynamically linked shared library i386
我應該添加到我的SConstruct文件,以使它是在x86_64機器上的i386中構建的?
scons不是C++編譯器。 –
如果您向我們展示SConsctruct,我們可以提供更好的幫助。聽起來你正在試圖編譯一個64位庫的32位應用程序。 – Brady
我對scons的瞭解可以放在郵票上......但是我認爲這裏有一個makefile文件,你可以在其中指定標誌並傳遞-m32(我認爲...不要引用我。)會強制編譯器進入32位模式,否則也許i386弓可以指定...類似的東西 –