Ссылка на stdc ++ fs с C ++ 20 все еще необходима при использовании файловой системы? - PullRequest
0 голосов
/ 19 июня 2020

Я начал использовать experimental::filesystem, когда он только что вышел, и мне посоветовали связать stdc++fs с помощью target_link_libraries(MyTarget stdc++fs) в CMake. Моя программа строится в любом случае, но могу ли я что-то нарушать / делать что-то ненужное, если я опустить команду дополнительной ссылки?

Этот вопрос здесь задавали три года go и, похоже, предполагалось, что ссылка в stdc++fs была необходима.

Изменить : версия компилятора g++-9 (Homebrew GCC 9.3.0_1) 9.3.0 и CMake версия 3.16.

Большое спасибо!

1 Ответ

2 голосов
/ 19 июня 2020

Из моего комментария:

Думаю, это зависит от версии вашего компилятора. Из cppreference. В самом низу страницы библиотеки файловой системы вы можете найти:

Использование этой библиотеки может потребовать дополнительных параметров компилятора / компоновщика. Реализация GNU до 9.1 требует связывания с -lstdc ++ fs, а реализация LLVM до LLVM 9.0 требует связывания с -lc ++ fs

en.cppreference.com / w / cpp / filesystem # Примечания

Как вы упомянули, следующая ссылка дает более подробную информацию о том, как проверить идентичность компилятора в cmake: Как я могу добавить минимальную версию компилятора?

...