如何从其他cmake模块添加静态库

时间:2017-04-21 07:25:55

标签: c++ cmake

假设我有2个cmake模块

    编译后的
  1. MyStaticLib将是一个静态库
  2. Connector这是一个共享的lib或可执行文件,它应该在里面使用MyStaticLib
  3. 所以,我想在MyStaticLib中添加Connector,但不是简单地将myStaticLib.a + headers放在某个文件夹中,而是从MyStaticLib引用Connector模块,所以当Connector编译它将从源代码构建lib并使用它。

    cmake中执行此操作的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

如果是独立项目(MyStaticLib由其他项目使用,有自己的发布周期),您可以使用:

find_library

  • 构建,测试并将MyStaticLib安装到您的文件系统中
  • find_library添加到Connector的{​​{1}}

find_package

  • 与上述类似,但CMakeList.txt提供了其他信息

ExternalProject

  • 如果您想在MyStaticLib
  • 使用之前触发MyStaticLib上的任何其他操作(构建,修补程序)
  • 为您提供最多的可能性

如果是依赖项目(MyStaticLib是Connector的子项目),只需将其添加为Connector的子目录(它必须是子目录)。