【问题标题】:CMake: Is there anyway to force linking libraries?CMake:有没有强制链接库?
【发布时间】:2014-03-02 11:54:05
【问题描述】:

无论如何要强制再次链接库。当某些库已更改但当前项目的任何源代码都没有更改时,这将很有用。我正在寻找这样的东西:

制作链接

【问题讨论】:

  • 你可以删除一个目标文件然后再次运行make
  • 如果 Basile 的选项不起作用,则删除构建目录中的所有 libs/dll,然后再次运行 make...

标签: c++ linux linker cmake


【解决方案1】:

如果您遵循此处的提示,CMake 应该能够在特定库更改时自动重新链接:http://www.cmake.org/pipermail/cmake/2010-November/041072.html

主要思想是提供 target_link_libraries() 的完整路径,而不仅仅是库名称。如果您提供完整路径,CMake 将实际检查文件是否有修改,如果已更改则重新链接。

如果您更喜欢自己显式触发重新链接,您可以使用 add_custom_command 创建类似 make link 的命令,该命令将删除可执行文件,然后触发常规 make 以重建它。

【讨论】:

  • 注意:一定要在库名前加上'lib'前缀;我忘记了这一点,并且遇到了需要我一段时间才能修复的错误 ;-)
猜你喜欢
  • 1970-01-01
  • 2011-07-20
  • 1970-01-01
  • 1970-01-01
  • 2016-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-12
相关资源
最近更新 更多