Вы сказали вашей целевой библиотеке, чтобы она ссылалась на boost_filesystem
, но вы не указали в вашем CMake , где , чтобы найти файлы заголовков Boost.
Идиоматический c способ найти Boost с использованием CMake - это использовать файлы конфигурации, которые теперь поставляются с Boost (например, BoostConfig.cmake
), начиная с версии Boost 1.70 и выше. Вы можете использовать их, вызвав find_package(Boost ...)
, затем связавшись с импортированной целью Boost::filesystem
:
# Tell CMake to locate Boost on your machine, specifically
# looking for the filesystem library.
find_package(Boost REQUIRED COMPONENTS filesystem)
...
# Link the Boost::filesystem target, which includes the Boost headers.
target_link_libraries(${PROJECT_NAME} PUBLIC
${CMAKE_THREAD_LIBS_INIT}
-lstdc++
-lpthread
Boost::filesystem
)
Это также приведет к увеличению заголовков, так что вы не сможете Вам не требуется явный вызов target_include_directories()
, чтобы указать, где находятся заголовки Boost.
Примечание. Чтобы убедиться, что заголовки установлены в вашей системе, вам может потребоваться дополнительно установить boost-devel
к вашей boost
установке.