Macos 在Mac OS X Lion上构建32位模式
我试图用这个命令在MacOSXLion上编译LLVM2.4Macos 在Mac OS X Lion上构建32位模式,macos,gcc,osx-lion,llvm,Macos,Gcc,Osx Lion,Llvm,我试图用这个命令在MacOSXLion上编译LLVM2.4 /configure--enable pic--prefix=/usr/local CC=“gcc-arch i386”CXX=“g++-arch i386” 我犯了这个错误 Undefined symbols for architecture i386: "llvm::PATypeHolder::get() const", referenced from: llvm::ELFWriter::EmitGlobal(llv
/configure--enable pic--prefix=/usr/local CC=“gcc-arch i386”CXX=“g++-arch i386”
我犯了这个错误
Undefined symbols for architecture i386:
"llvm::PATypeHolder::get() const", referenced from:
llvm::ELFWriter::EmitGlobal(llvm::GlobalVariable*) in libLLVMCodeGen.a(ELFWriter.o)
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status
这个怎么了 对于交叉编译,当您使用machine元组提供主机、目标和构建时,configure喜欢它 如果您不熟悉机器元组是什么,可以使用
gcc -dumpmachine
其中,使用Lion报告:
i686-apple-darwin11
请注意,在Lion x86_64-apple-darwin11上,64位有效。。但是,要在构建llvm时使用它:
./configure \
--enable-pic \
--prefix=/usr/local \
--host=i686-apple-darwin11 \
--target=i686-apple-darwin11 \
--build=i686-apple-darwin11
这应该可以做到,但您可能希望包括
--enable-languages=c,c++,obj-c
--enable-optimized
您还可以使用“file”和“otool”验证正在链接的库。或者,如果你链接的是一个静态归档文件(看起来是这样的…),我的快速测试是
ar p somelib.a $(ar t somelib.a | grep \.o | tail -1) | file -
您不会遇到i386 OSX Lion box,因此为i386构建clang似乎是不必要的-您可能可以构建64位版本(默认情况下选择的任何版本),然后在使用该版本编译时,您可以在CFLAGS或cxflags中指定“-m32”或“-m64”以生成正确的对象位深度
-n我现在正试图在i386 OSX Lion box上构建一些东西。