【问题标题】:CMAKE library not linkingCMAKE 库未链接
【发布时间】:2023-03-15 14:48:01
【问题描述】:

为什么这段代码没有产生任何东西?

link_directories(${CMAKE_SOURCE_DIR}/libs/mylib1)
message("DIR: ${LINK_DIRECTORIES}")

我在 Windows 上遇到问题,虽然我做了link_directories(),但链接时没有-L... 标志。我确实按照文档建议在link_directories 命令之后创建了目标。

【问题讨论】:

  • 请提供完整的 CMakeLists.txt 并描述您的文件夹结构 - 真的不清楚您的问题是什么。

标签: c++ c gcc cmake


【解决方案1】:

通过使用“link_directories(${CMAKE_SOURCE_DIR}/libs/mylib1)”,您是在告诉 CMake 告诉链接器在需要链接到带有一个简单的名称,如“png”或“zlib”。

但是,甚至不再推荐使用 link_directories。我们始终建议使用 target_link_libraries 以及要链接到的库文件的完整路径名。然后 CMake 会为您在所有不同平台上为链接器安排所有 -L 和 -l 参数。

如果您需要更多帮助,请在您的问题中添加更多信息。有点不清楚你想要做什么,或者你期待什么。

【讨论】:

    【解决方案2】:

    因为 LINK_DIRECTORIES 不是变量,而是目录属性。您可以通过以下方式获取:

    get_directory_property(OUT_VAR LINK_DIRECTORIES)
    message(STATUS "DIR: ${OUT_VAR}")
    

    documentation

    【讨论】:

      【解决方案3】:

      我不确定您要实现的总体目标是什么。

      target_link_libraries 会做得更好吗?

      target_link_libraries( TARGET LIB1 LIB2 LIB3 ... )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多