實驗性::檔案系統的連結器錯誤
當嘗試在目前開發版本的gcc 6.0 中使用新穎的c 1z 功能時,範例程式遇到連結器錯誤:
#include <iostream> #include <experimental/filesystem> namespace fs = std::experimental::filesystem; int main() { fs::path p1 = "/home/pete/checkit"; std::cout << "p1 = " << p1 << std::endl; }
導致下列錯誤:
/opt/linux-gnu_6-20151011/bin/g++ --std=c++1z main.cpp -O2 -g -o go /tmp/ccaGzqFO.o: In function \`std::experimental::filesystem::v1::__cxx11::path::path(char const (&) [36])': /opt/linux-gnu_6-20151011/include/c++/6.0.0/experimental/bits/fs_path.h:167: undefined reference to `std::experimental::filesystem::v1::__cxx11::path::_M_split_cmpts()' collect2: error: ld returned 1 exit status
解決方案
檔案系統TS 不同於C 1z 支持並且不是C 1z 工作草案的一部分。可以透過使用 -lstdc fs 連結來存取庫來解決連結問題。
更新
以上是為什麼在 GCC 6.0 中使用 `std::experimental::filesystem` 時出現連結器錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!