MAC上编译boost后在QT上使用时遇到两个问题,第一个是target版本不同 ,QT的版本是10.8,而boost编译出来的是10.12,因为我的mac刚升级到10.12.这样在连接boost时就报错。库的版本高于QT的要生成的APP的版本。
第二个问题是链接libboost_filesystem.a时报错 :-1: error: symbol(s) not found for architecture x86_64
这错误报的也是一头雾水,原来是少少依赖了一个库libboost_system.a
加上:
LIBS += /Users/gaolin/Public/boost_1_63_0/stage/lib/libboost_filesystem.a
LIBS += /Users/gaolin/Public/boost_1_63_0/stage/lib/libboost_system.a
编译通过,一切OK
对于第一个问题,可以在编译boost时指定低版本:
./b2 toolset=clang cxxflags="-arch x86_64" linkflags="-arch x86_64" cflags=-mmacosx-version-min=10.8 cxxflags=-mmacosx-version-min=10.8 mflags=-mmacosx-version-min=10.8 mmflags=-mmacosx-version-min=10.8 linkflags=-mmacosx-version-min=10.8 toolset&