AIXのgcc-c++ヘッダーライブラリ

AIXのgcc-c++ヘッダーライブラリ

私はいくつかのコードをLinuxからAIXに移植する作業を進めています。このコードは C++17 のヘッダーを使用します。

#include <filesystem>
...
std::ifstream is(path);
if (!is.is_open() && std::filesystem::path(path).is_relative())

コードは、-std=c++17 オプションとともに gcc-c++ 8.3.0 を使用して AIX でコンパイルされました。コードを含むオブジェクトファイルは正常にコンパイルされますが、リンク時にリンカは失敗します。

ld: 0711-317 ERROR: Undefined symbol: .std::filesystem::__cxx11::path::_M_split_cmpts()
ld: 0711-317 ERROR: Undefined symbol: .std::filesystem::__cxx11::path::has_root_directory() const

オンラインで検索したところ、gcc 8.xxにリンクされたファイルシステムライブラリを使用する必要があることがわかりました-lstdc++fs。実際、Linuxではコードがgcc 8.3.1にコンパイルされ、このオプションが使用されます。だからもう一度試しました。

/opt/freeware/bin/g++ <comand> -lstdc++fs
collect2: fatal error: library libstdc++fs not found
compilation terminated.

だから私の質問は、AIXでgcc-c ++を使用してファイルシステムライブラリをリンクする方法です。私のコードがコンパイルされていることを考えると、これは可能であると仮定していますが、リンカーがライブラリを見つけることができないので、パニックになります。

ベストアンサー1

おすすめ記事