首頁 > 後端開發 > C++ > 為什麼在 GCC 6.0 中使用 Experimental::filesystem 庫時會出現連結器錯誤?

為什麼在 GCC 6.0 中使用 Experimental::filesystem 庫時會出現連結器錯誤?

Barbara Streisand
發布: 2024-11-15 10:41:02
原創
1037 人瀏覽過

Why am I getting linker errors when using the experimental::filesystem library in GCC 6.0?

experimental::filesystem 的連結器錯誤

嘗試使用GCC 6.0 中的Experimental::filesystem 庫實作C 1z 功能時,使用者可能會遇到連結器錯誤。錯誤訊息指示對 std::experimental::filesystem::v1::__cxx11::path::_M_split_cmpts() 的未定義參考。

原因:

檔案系統 TS 不是 C 1z 的一部分,而是單獨的規範。 GCC 對此函式庫的實作可在 C 11 模式下使用。

解決方案:

要解決此問題,請與 -lstdc fs 連結。 libstdc fs.a 函式庫必須位於連結器指令中依賴它的物件之後。

更新:

  • 2017 年11 月: GCC 8.x 在std::filesystem 命名空間中實現了C 17文件系統庫。該函式庫可以與 -std=gnu 17 或 -std=c 17 一起使用,但仍需要與 -lstdc fs 連結。
  • 2019 年 1 月: GCC 9 及以後允許使用 std: :不含 -lstdc fs 的檔案系統元件。
  • 2024 年 4 月: GCC 13.3 將 std::experimental::filesystem 符號加入 -lstdc exp。

以上是為什麼在 GCC 6.0 中使用 Experimental::filesystem 庫時會出現連結器錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板