Как правильно связать файловую систему C ++ 17 с CMake? - PullRequest
2 голосов
/ 24 октября 2019

Я заметил, что связывание моего проекта CMake с gcc 8.3 не может связать функции из std :: filesystem. Это не относится к gcc 9, clang 7 или clang 8.

Я нашел такие решения, как , и , , но эти жесткие коды связывают stdc++fs, что обычно не то, что вы хотите сделать.

  • Так как правильно связать такие библиотеки?
  • Нужно ли делать find_package? Какую посылку я ищу?

1 Ответ

2 голосов
/ 24 октября 2019

Похоже, что сейчас нет правильного решения. На эту тему все еще существует открытый выпуск на эту тему на трекере CMake.

Некоторые, похоже, используют модули поиска, например this , что позволит вам использовать коднапример:

find_package(Filesystem REQUIRED)

add_executable(myapp myapp.cpp)
target_link_libraries(myapp PRIVATE std::filesystem)

По моему мнению, это предпочтительнее, чем изменять CMAKE_CXX_FLAGS или напрямую связываться с stdc++fs.

...