在我尝试回答我自己的问题时,Clang 链接器报告“未找到符号”,尽管“nm -m”显示该名称存在于正在链接的库中,但我发现了一些链接,表明我必须在操作系统上构建 Boost X 以便它显式使用 Clang 并链接到libc++ 此处、此处和此处。
按照指示的步骤(借助额外的谷歌搜索来协助/确认编辑过程user-config.jam,将其放入我的主目录以及其他必要的步骤),我已将以下几行添加到我的~/user-config.jam文件中:
using clanglibcpp : 11
: "/usr/bin/clang++"
: <cxxflags>"-std=c++11 -stdlib=libc++" <linkflags>"-stdlib=libc++"
;
Run Code Online (Sandbox Code Playgroud)
./b2然后我从目录运行$BOOST_ROOT:
./b2 toolset=clanglibcpp-11 --with-filesystem variant=release link=static threading=multi
不幸的是,无论我做什么,我都会收到以下错误:
ERROR: rule "clanglibcpp.init" unknown in module "toolset"
我已经确认/usr/bin/clang++存在于指示的路径中(确实如此)。我也尝试将以上几行添加到$BOOST_ROOT/tools/build/v2/user-config.jam(没有运气)。我还尝试./bootstrap.sh从 boost 根目录运行,以及运行./b2 --clean. 没有运气。
我应该怎么做才能真正让工具集user-config.jam在 OS X 上的 Boost 版本中生效?
小智 1
@llonesmiz 对 @Dan Nissenbaum 有效的答案:
我不确定,遗憾的是我现在无法检查,但是您可以尝试使用:
using clang : libcpp11
: "/usr/bin/clang++"
: <cxxflags>"-std=c++11 -stdlib=libc++" <linkflags>"-stdlib=libc++"
;
Run Code Online (Sandbox Code Playgroud)
然后像这样调用 b2:
./b2 toolset=clang-libcpp11 --with-filesystem variant=release link=static threading=multi
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3045 次 |
| 最近记录: |