从父 cmake 动态/静态库构建 cmake 静态库的最佳方法

Posted

技术标签:

【中文标题】从父 cmake 动态/静态库构建 cmake 静态库的最佳方法【英文标题】:Best way to build a cmake static library from a parent cmake dynamic/static library 【发布时间】:2021-03-01 20:37:31 【问题描述】:

我想添加这个基于 cmake 的静态库

https://github.com/google/highway

到我的静态或动态库

https://github.com/GrokImageCompression/grok

所以,我想先建静态库,再建动态库 并链接到静态库。

我已将静态库添加为子文件夹,并且正在生成 .a 文件 cmake 二进制文件夹。但是,我不确定如何链接到这个库

target_link_libraries($PARENT_LIBRARY_NAME $PARENT_BIN_DIR/hwy)

没用。

【问题讨论】:

【参考方案1】:

您需要在调用target_link_libraries时使用目标的名称,即target_link_libraries($PARENT_LIBRARY_NAME PUBLIC hwy)target_link_libraries($PARENT_LIBRARY_NAME PRIVATE hwy),这取决于您是否在父库的公共标头中使用hwys标头(选择PUBLIC ) 或仅在父库的实现中(选择 PRIVATE)。

【讨论】:

非常感谢!!

以上是关于从父 cmake 动态/静态库构建 cmake 静态库的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章

(转)HelloWorld CMake CMake中构建静态库与动态库及其使用

CMake--静态库与动态库构建

当我链接动态库而不是静态库时,CMake 有效

Android Studio手动配置Makefile、CMake

如何使 cmake 将 D 参数传递给 ar 以可重现地构建静态库

如何使用cmake生成基于静态库的动态链接库