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

问题描述

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

https://github.com/google/highway

到我的静态或动态库

https://github.com/GrokImageCompression/grok

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

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

target_link_libraries(${PARENT_LIBRARY_NAME} ${PARENT_BIN_DIR}/hwy)

不起作用。

解决方法

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