儘管使用 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中文網其他相關文章!