8

用例:我想使用使用 libstdc++(无法更改)的第 3 方静态库,因此我必须将我的应用程序与 libstdc++ 链接。现在,如果我想在自己的代码中使用 C++11 功能,我必须在 Xcode 中选择 libc++ 并另外链接 libstdc++ 以满足静态库。

我的问题是,即使我在“构建设置”中选择了 libc++ 并将“-lstdc++”添加到“其他链接器标志”(也通过“构建阶段 > 将二进制文件与库链接”进行了尝试),但我得到了后者的链接器错误,即第 3 方库引用的 libstdc++ 函数/类。

如何配置项目以链接两个 C++ 标准库?理论上应该是可能的,因为 libc++ 将在它自己的内联命名空间std::__1中。

4

1 回答 1

10

我刚刚遇到了这个问题,我的解决方案是,而不是添加-lstdc++其他标志,你把/usr/lib/libstdc++.dylib.

我的预感是,当 xcode/clang-std=c++设置时,需要显式加载旧的 .dylib。

于 2013-08-30T15:46:52.223 回答