実験的なC++ファイルシステムを使用してプログラムをコンパイルしようとしていますが、プログラムをリンクしようとすると異常な動作をします。私はfs :: pathを作ることができますが、関数を呼び出すとリンカーエラーが発生します。<experimental/filesystem>を使用して関数を呼び出すとリンカエラーが発生する
g ++。exe(i686-posix-dwarf、MinGW-W64プロジェクトで構築)を使用してWindows 10でコンパイルしています。
次のコードはコンパイルされます。
CC = g++
CFLAGS = -std=c++11 -MP -MD -fPIC
OUTPUT:
g++ build/Engine.o ... -o bin/libquestia-eng.1.0.0.dll -L lib/SFML-2.4.2-win/lib -lsfml-audio -lsfml-network -lsfml-graphics -lsfml-window -lsfml-system -lstdc++fs -shared
エラー:
任意の関数を使用しようとするとnamespace fs = std::experimental::filesystem::v1;
bool utl::doesExist(const std::string& fileLocation)
{
fs::path path(fileLocation);
std::cout << path << std::endl;
return true;
}
をしかし、私は同じエラーに
bool utl::doesExist(const std::string& fileLocation)
{
fs::path path(fileLocation);
return fs::exists(fileLocation);
}
Makefileを取得します
C:/MinGW/bin/../lib/gcc/i686-w64-mingw32/6.1.0/libstdc++fs.a(ops.o):(.text$_Z10_wrealpathPKwPw+0x68): undefined reference to `[email protected]'
C:/MinGW/bin/../lib/gcc/i686-w64-mingw32/6.1.0/libstdc++fs.a(ops.o):(.text$_Z10_wrealpathPKwPw+0x121): undefined reference to `[email protected]'
私は問題がdllであるターゲットにあるかもしれないと思っていますが、インターネットを検索しても解決策はありません。このリンカエラーが何を意味するかについての任意のアイデア?
-lstdC++ fsの後に-lktmw32を追加してコンパイルしました。ありがとうございました! –