pisa-engine/pisa

Building with GCC8

JMMackenzie opened this issue · 0 comments

When building PISA on a RHEL box with older tooling, the current default configuration out of CMake does not explicitly incorporate the link to filesystems. This would result in errors as follows:

[100%] Linking CXX executable ../bin/queries
../libpisa.a(memory_source.cpp.o): In function `pisa::MemorySource::mapped_file(std::filesystem::__cxx11::path)':
/usr/include/c++/8/bits/fs_ops.h:121: undefined reference to `std::filesystem::status(std::filesystem::__cxx11::path const&)'
../libpisa.a(sharding.cpp.o): In function `pisa::resolve_shards(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >)':
/usr/include/c++/8/bits/fs_path.h:178: undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()'
../libpisa.a(sharding.cpp.o): In function `pisa::resolve_shards(std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >)':
....

To fix this problem, I manually added stdc++fs to the target_link_libraries(...) section of CMakeLists.txt such that the filesystem would be linked during compilation.

This is with gcc version 8.5.0 20210514 (Red Hat 8.5.0-4) (GCC).