Using <filesystem> on macOS 10.13 with clang++-mp-13
Mojca Miklavec
mojca at macports.org
Sun Jul 3 11:12:34 UTC 2022
Hi,
I'm trying to build some sources that require <filesystem> on 10.13
using clang 13 (I can try with clang 14, but I doubt that it helps).
What's the correct way to compile the following minimal example? Do I
need to link against a newer libc++ somehow?
If it's not feasible to do that, I'll target a newer OS, I was just
silently hoping to have some success ;)
Thank you,
Mojca
#include <cstdlib>
#include <filesystem>
int main() {
auto cwd = std::filesystem::current_path();
printf("%s", cwd.c_str());
return EXIT_SUCCESS;
}
> clang++-mp-13 test.cpp -o test
test.cpp:5:16: error: no member named 'filesystem' in namespace 'std';
did you mean 'std::__fs::filesystem'?
auto cwd = std::filesystem::current_path();
^~~~~~~~~~~~~~~
std::__fs::filesystem
/opt/local/libexec/llvm-13/bin/../include/c++/v1/filesystem:268:1:
note: 'std::__fs::filesystem' declared here
_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM
^
/opt/local/libexec/llvm-13/bin/../include/c++/v1/__config:816:58:
note: expanded from macro '_LIBCPP_BEGIN_NAMESPACE_FILESYSTEM'
_LIBCPP_BEGIN_NAMESPACE_STD namespace __fs { namespace filesystem {
^
1 error generated.
> clang++-mp-13 -std=c++17 test.cpp -o test
Undefined symbols for architecture x86_64:
"std::__1::__fs::filesystem::__current_path(std::__1::error_code*)",
referenced from:
std::__1::__fs::filesystem::current_path() in test-1b2bbf.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
More information about the macports-dev
mailing list