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())

该代码是在 AIX 上使用 gcc-c++ 8.3.0 并使用选项 -std=c++17 进行编译的。代码所在的目标文件编译成功,但是当链接时链接器失败

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++ 链接文件系统库?鉴于我的代码可以编译,我假设这是可能的,但由于链接器找不到该库,我不知所措。

相关内容