![](/img/trans.png)
[英]Link two different version of protobuf library in the same C++ project
[英]Is it safe to link 2 different standard c++ library in one project
我正在使用链接错误构建我的iOS项目。 我的项目链接到一些第三方静态库。 他们使用不同的标准c ++库,一个是libstdc++
,另一个是libc++
。
链接任何一个都会导致其他lib中的链接错误,所以我在目标中链接它们,命令行是-lstdc++ -lc++
。
现在它成功构建,但我想知道它是否会导致一些运行时错误,有人能解释一下吗? 提前致谢。
不,这不安全。 实际上,它直接违反了One Definition Rule(ODR) 。 除其他事项外,ODR表示在整个程序中最多只能有一个非内联函数的定义。 您将通过链接标准库的两个不同实现来违反此规则。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.