[英]Multiple linkage of boost libraries
如果应用程序与一些boost的库链接,而另一个应用程序通过boost的链接编译,是否会出现像ODR这样的问题?
示例: foo.exe
与boost-*.lib
和bar.lib
,以前在编译bar.lib
时也与boost-*.lib
链接。
就MSVC而言,库构建为多线程的。
我在使用静态链接的libcURL和OpenSSL中遇到了类似的问题。 libCURL库使用OpenSSL进行https下载,并且在编译时需要链接到OpenSSL。 我的观察是:
我建议您尝试在没有该Boost库的情况下链接到bar.lib
,然后查看它是否有效。 如果可以编译,那么没有它,你会很好。 如果收到未定义的参考错误,则需要链接到它。 那是最坏的情况。
在同一过程中混合多个版本的Boost(包括仅包含标头的库)总是一个坏主意。 Boost既不提供API也不提供ABI保证,如果两个不同的版本相互接触,则可能会导致内存损坏甚至更糟。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.