尽管使用 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中文网其他相关文章!