一、 创建静态库与动态库, 并且引用

Lib 目录下的 CMakeLists
src 目录下的 CMakeLists
主目录下的 CMakeLists 和创建没有 lib 的项目工程的是一样, 在这里就不列出了, 问题是如何将 lib 和 src 一键编译? 尝试在主目录下加入 add_subdirectory(lib)时 cmake 没问题,但是 make 时会出现问题,提示 main.c 找不到 hello.h,分析原因,因为没有触发 make install,所以在目标库文件夹下找不到对应的库。想到解决方案,是分两次编译,使用脚本文件触发,如下:
但是这么编译有个问题,当一个工程需要用到多个库文件,并且某个库的实现可能要用到另一个库的内容时,那么可能会出现 make 找不到目标文件的问题,这时要对每个库进行单独编译,这样子执行的脚本文件将会显得很臃肿,那么如何解决呢,能不能使用 CMakeLists 自动读取 src 与 lib 的文件,自己创建连接呢?接下来我们来看看如何实现。
Src 下的 CMakeLists
工程目录下的 CMakeLists
测试代码:
结果: