[英]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.