将 clang 构建的可执行文件与 g++-v6 构建的 boost 库链接的错误

Posted

技术标签:

【中文标题】将 clang 构建的可执行文件与 g++-v6 构建的 boost 库链接的错误【英文标题】:errors linking clang-built executable with g++-v6-built boost library 【发布时间】:2017-03-24 15:48:20 【问题描述】:

我在 Fedora Linux 上使用 g++ 6.3.1 版自己构建了一个 boost 正则表达式库。

然后我有自己的使用 boost 正则表达式的库,使用 clang++ 4.0 作为共享对象构建。 构建这个工作正常。

最后我有一个链接到我的库的可执行文件,这会产生以下错误:

undefined reference to `boost::re_detail::cpp_regex_traits_implementation<char>::transform[abi:cxx11](char const*, char const*) const'

仅使用 g++ 构建和链接才能正常工作。

这可以用 clang++ 的一些命令行参数来解决吗?

【问题讨论】:

【参考方案1】:

由于似乎没有人对此有解决方案,我第二次编译了 boost ./b2 工具集=clang 现在我的问题都解决了。

【讨论】:

以上是关于将 clang 构建的可执行文件与 g++-v6 构建的 boost 库链接的错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 Clang 编译的可执行文件中的 emscripten

gdb 7.5.1 调试通过 g 4.7.2 构建的可执行文件的问题

如何告诉 clang 将调试符号放入可执行二进制文件中? [复制]

mingw 包含哪些

无法与忍者建立clang [重复]

clang 3.1 在 Ubuntu 12.04 上构建的二进制文件无法使用 gdb 进行调试