c++ - 针对 libstdc++ 和 libc++ 链接 iOS 应用程序

标签 c++ ios xcode c++11 linker

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

我的问题是,即使我在“Build settings”中选择了 libc++ 并将“-lstdc++”添加到“Other linker flags”(也尝试通过“Build phases > Link Binary With Libraries”),我还是遇到了链接器错误对于后者,这是针对第 3 方库引用的 libstdc++ 函数/类。

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

最佳答案

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

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

关于c++ - 针对 libstdc++ 和 libc++ 链接 iOS 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15615364/

相关文章:

ios - 如何排列 UI 元素以适应 iOS 中的所有屏幕尺寸

c++ - Mat的单 channel 作为矩阵Opencv

c++ - 简单快速读取过程

ios - FB ios SDK-3.0+-如何为[FBSession.activeSession openWithBehaviour:completedHandler]添加权限?

ios - Apple 是否为 SIRI 提供 API?

c++ - 如何在 Xcode 中使用 boost::multiprecision::float128

android - 错误 : undefined reference to 'av_free_packet(AVPacket*)' when use NDK to compile ffmpeg

C++ GetProcAddress() 找不到静态类的方法

iphone - 如何设置受密码保护的网站来测试 HTTP 身份验证质询?

xcode - 替换 Swift2 Storyboard MAC OSX 下的 NSViewController