cmake 同时创建 static 静态库和 shared 动态库

创建日期: 2024-07-24 12:34 | 作者: 风波 | 浏览次数: 18 | 分类: CMake

参考:https://github.com/Liuyvjin/notebook/blob/master/Cmake/Cmake%E9%9D%99%E6%80%81%E5%BA%93%E5%92%8C%E5%8A%A8%E6%80%81%E5%BA%93.md

SET(LIBHELLO_SRC
    crypto.cc
    easylog.cc
    args.cc
    )

ADD_LIBRARY(crypt_static STATIC ${LIBHELLO_SRC})
ADD_LIBRARY(crypt_shared SHARED ${LIBHELLO_SRC})

#SET_TARGET_PROPERTIES(crypt_static crypt_shared PROPERTIES libcrypt.a libcrypt.so)
SET_TARGET_PROPERTIES(crypt_static PROPERTIES OUTPUT_NAME "crypt")
SET_TARGET_PROPERTIES(crypt_shared PROPERTIES OUTPUT_NAME "crypt")

SET_TARGET_PROPERTIES(crypt_shared PROPERTIES CLEAN_DIRECT_OUTPUT 1)
SET_TARGET_PROPERTIES(crypt_static PROPERTIES CLEAN_DIRECT_OUTPUT 1)

TARGET_LINK_LIBRARIES (crypt_static crypto)
TARGET_LINK_LIBRARIES (crypt_shared crypto)
  1. ADD_LIBRARY 的时候,改target名字-->改target的输出文件名-->阻止清理同名target

  2. 更改OUTPUT_NAME属性,SET_TARGET_PROPERTIES(hello_static PROPERTIES OUTPUT_NAME "hello")

  3. 再次使用SET_TARGET_PROPERTIES定义CLEAN_DIRECT_OUTPUT属性,阻止清理。

18 浏览
11 爬虫
0 评论