我正在努力获得1.53的升级链接到为i386编译的应用程序。这是在64位的mac上。似乎boost默认构建为64位,所以当我尝试链接到它时,我收到此错误:
ld:警告:忽略文件 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk/usr/local/lib/libboost_system.dylib, 文件是为不支持的文件格式而构建的,而不是 被链接的架构(i386)
我尝试通过此命令构建boost:
./ b2 toolset = darwin cxxflags =“ - arch i386”address-model = 32 stage
但它似乎没有什么区别。我的链接器设置是
-lboost_system -lboost_thread
我是否需要以不同的方式构建提升,或以不同方式链接到它?
修改
只是想通了这个命令似乎正确构建它:
./ b2 toolset = darwin cxxflags =“ - arch i386”address-model = 32 architecture = x86 stage
并为安装做同样的事情
./ b2 install toolset = darwin cxxflags =“ - arch i386”address-model = 32 architecture = x86 stage
答案 0 :(得分:3)
您需要在目标配置中选择架构i386:
(Valid Architectures
目标中的Build Setting
然而,如果您正在构建应用,则有两种解决方案:
i386
替换为x86_64
和
更改Architectures
以及Valid Architectures
。