Boost 设置用于在Mac上使用g++;4.8
我正在尝试在Mac上构建boost库,从端口安装g++4.8 我制作了~/user-config.jam,并使用gcc::g++-mp-4.8添加了一行Boost 设置用于在Mac上使用g++;4.8,boost,g++,b2,g++4.8,Boost,G++,B2,G++4.8,我正在尝试在Mac上构建boost库,从端口安装g++4.8 我制作了~/user-config.jam,并使用gcc::g++-mp-4.8添加了一行使用g++4.8编译器。我已将bjam和b2与brew安装bjam一起安装 问题是,当我使用b2命令构建boost时,出现以下链接错误: ld: unknown option: -R collect2: error: ld returned 1 exit status 这是因为g++4.8不能像苹果的g++4.2那样识别-R选项 如何设置g++
代码>使用g++4.8编译器。我已将bjam和b2与brew安装bjam
一起安装
问题是,当我使用b2
命令构建boost时,出现以下链接错误:
ld: unknown option: -R
collect2: error: ld returned 1 exit status
这是因为g++4.8不能像苹果的g++4.2那样识别-R选项
如何设置g++4.8的构建选项?这是b2使用的命令。我已经找到了配置信息,但找不到设置工具集配置的有用信息
"g++-mp-4.8" -Wl,-R -Wl,"/System/Library/Frameworks/Python.framework/Versions/2.7/lib"
-Wl,-R -Wl,"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/config" -o
"stage/lib/libboost_system.dylib" -Wl,-h -Wl,libboost_system.dylib -shared -Wl,--start-group
"bin.v2/libs/system/build/gcc-4.8.0/release/threading-multi/error_code.o" -Wl,-Bstatic -Wl,
-Bdynamic -Wl,--end-group
这是使用g++生成动态库文件的错误。我认为用g++生成dylib文件是不必要的,甚至是不可能的,但我只是找到了一种消除错误的方法。我没有检查生成的动态库是否工作正常。我可以毫无问题地获取静态库文件,因此可以使用g++4.8中的库
问题是有许多选项g++无法识别:-h-B-R在构建动态库文件时。如果你只是想要静态库,你可以得到它们
我不得不修改gcc.jam文件以不提供选项
来自…/tools/build/v2/tools/gcc.jam
取消注释生成错误选项的代码
第855-858行删除-B选项
# toolset.flags $(toolset).link FINDLIBS-ST-PFX
# $(condition)/<runtime-link>shared : -Wl,-Bstatic : unchecked ;
# toolset.flags $(toolset).link FINDLIBS-SA-PFX
# $(condition)/<runtime-link>shared : -Wl,-Bdynamic : unchecked ;
#toolset.flags $(toolset).link OPTIONS $(condition)/<strip>on : -Wl,--strip-all : unchecked ;
#toolset.flags $(toolset).link RPATH $(condition) : <dll-path> : unchecked ;
#toolset.flags $(toolset).link RPATH_LINK $(condition) : <xdll-path> : unchecked ;
#toolset.flags $(toolset).link START-GROUP $(condition) : -Wl,--start-group : unchecked ;
#toolset.flags $(toolset).link END-GROUP $(condition) : -Wl,--end-group : unchecked ;
#SONAME_OPTION = -h ;