![](/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.