【问题标题】: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 的情况。

我找到了thisthis 之类的解决方案,但这些解决方案对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 更可取。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-10
      • 2013-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多