[解決済み] experimental::filesystem リンカエラー
質問
gcc6.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: 関数 `std::experimental::filesystem::v1::__cxx11::path::path(char const (&) [36])' 内で、'std::experimental::filesystem::v1::__cxx11は、'。 /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: エラー: ld が 1 の終了ステータスを返しました。
gcc のバージョンは linux-gnu_6-20151011 のスナップショットです。
c++1zの新機能に対応するためのリンク方法について、何かヒントがあれば教えてください。
どのように解決するのですか?
Filesystem TS は C++1z のサポートとは無関係で、C++1z の作業草案に含まれない完全に別の仕様です。 GCC の実装 (GCC 5.3 以降) は、C++11 モードで利用可能でさえあります。
でリンクする必要があるだけです。
-lstdc++fs
でリンクすれば使えます。
(該当するライブラリの
libstdc++fs.a
は静的ライブラリなので、他の静的ライブラリと同様に、このライブラリには
の後に
の後に来る必要があります。)
2017年11月更新です。
と同様に、Filesystem TS、GCC 8.x
も
で定義されている C++17 ファイルシステム・ライブラリの実装があります。
<filesystem>
で定義され、名前空間
std::filesystem
(を使用する場合(注:これらの名前には "experimental" は含まれません)。
-std=gnu++17
または
-std=c++17
. GCCのC++17のサポートはまだ完全ではなく、安定していません。
-lstdc++fs
にリンクする必要があります。
2019年1月更新です。
GCC 9 からは、C++17 の
std::filesystem
コンポーネントが
-lstdc++fs
(がなくても使用できます(ただし
std::experimental::filesystem
).
関連
-
[解決済み】fatal error: Python.h: そのようなファイルやディレクトリはありません
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】テンプレートの引数1が無効です(Code::Blocks Win Vista) - テンプレートは使いません。
-
[解決済み】オブジェクト引数のない非静的メンバ関数の呼び出し コンパイラーエラー
-
[解決済み】C++の余分な資格エラー
-
[解決済み】エラー:不完全な型へのメンバーアクセス:前方宣言の
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み] 変数サイズのオブジェクトが初期化されないことがある c++
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み】C++の余分な資格エラー
-
[解決済み】指定範囲内の乱数で配列を埋める(C++)
-
[解決済み】 while(cin) と while(cin >> num) の違いは何ですか?)
-
[解決済み】Enterキーを押して続行する
-
[解決済み】演算子のオーバーロード C++; <<操作のパラメータが多すぎる
-
[解決済み】デバッグアサーションに失敗しました
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された