首頁  >  文章  >  後端開發  >  為什麼在 C 0x 模式下使用帶有 libc 的 Clang 時 Boost::Program_Options 無法連結?

為什麼在 C 0x 模式下使用帶有 libc 的 Clang 時 Boost::Program_Options 無法連結?

Barbara Streisand
Barbara Streisand原創
2024-11-03 20:08:29999瀏覽

Why Does Boost::Program_Options Fail to Link When Using Clang with libc   in C  0x Mode?

為什麼在 c 0x 模式下使用 clang 和 libc 時 boost::program_options 無法連結?

儘管使用 clang 和 libc 函式庫編譯 boost,但程式碼在 c 0x 模式下使用 clang 時連結失敗。這是因為 libc 與 gcc 的 libstdc 不二進位相容。雖然std::string 的API 保持不變,但它的ABI 使用C 11 的內聯命名空間功能進行了修改,導致連結器將std::string 和std::__1::basic_string 視為不同的資料結構。這會阻止二進位檔案和庫之間的成功連結。

以上是為什麼在 C 0x 模式下使用帶有 libc 的 Clang 時 Boost::Program_Options 無法連結?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn