Obwohl Boost mithilfe von clang mit der libc-Bibliothek kompiliert wurde, ist der Code Die Verknüpfung schlägt fehl, wenn Clang im C 0x-Modus verwendet wird. Dies liegt daran, dass libc nicht binärkompatibel mit libstdc von gcc ist. Während die API von std::string gleich bleibt, wird ihr ABI mithilfe der Inline-Namespace-Funktion von C 11 geändert, was dazu führt, dass der Linker std::string und std::__1::basic_string als unterschiedliche Datenstrukturen behandelt. Dies verhindert eine erfolgreiche Verknüpfung zwischen der Binärdatei und der Bibliothek.
Das obige ist der detaillierte Inhalt vonWarum kann Boost::Program_Options nicht verknüpft werden, wenn Clang mit libc im C 0x-Modus verwendet wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!