从父 cmake dynamic/static 库构建 cmake 静态库的最佳方法
Best way to build a cmake static library from a parent cmake dynamic/static library
我想添加这个基于cmake的静态库
https://github.com/google/highway
到我的静态或动态库
https://github.com/GrokImageCompression/grok
所以,我想先建静态库,再建动态库
和 link 到静态库。
我已将静态库添加为子文件夹,并且正在生成 .a 文件
cmake 二进制文件夹。但是,我不确定如何 link 这个库
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
s headers 在 parent 库的 public headers 中(选择 PUBLIC)或仅在 parent 库的实现中(选择 PRIVATE)。
我想添加这个基于cmake的静态库
https://github.com/google/highway
到我的静态或动态库
https://github.com/GrokImageCompression/grok
所以,我想先建静态库,再建动态库 和 link 到静态库。
我已将静态库添加为子文件夹,并且正在生成 .a 文件 cmake 二进制文件夹。但是,我不确定如何 link 这个库
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
s headers 在 parent 库的 public headers 中(选择 PUBLIC)或仅在 parent 库的实现中(选择 PRIVATE)。