【问题标题】:What is the correct way to link C++17 filesystem with CMake?将 C++17 文件系统与 CMake 链接的正确方法是什么?
【发布时间】:2019-10-24 16:30:54
【问题描述】:
我注意到将我的 CMake 项目与 gcc 8.3 链接无法链接来自 std::filesystem 的函数。这不是 gcc 9、clang 7 或 clang 8 的情况。
我找到了this 和this 之类的解决方案,但这些解决方案对stdc++fs 的链接进行了硬编码,这通常不是您想要做的。
- 那么链接此类库的正确方法是什么?
- 我必须做一个
find_package吗?我要找的包裹是什么?
【问题讨论】:
标签:
cmake
c++17
linker-errors
【解决方案1】:
目前看来还没有合适的解决方案。在 CMake 跟踪器上仍然有关于此主题的 open issue。
有些人似乎在使用像this one 这样的查找模块,这将允许您使用如下代码:
find_package(Filesystem REQUIRED)
add_executable(myapp myapp.cpp)
target_link_libraries(myapp PRIVATE std::filesystem)
在我看来,这比更改 CMAKE_CXX_FLAGS 或直接链接到 stdc++fs 更可取。