cmake(九)Cmake设置生成库的属性

一  基本语法

①  设置目标的属性

set_property(<GLOBAL                           |
             DIRECTORY [dir]                   |
             TARGET    [target1 [target2 ...]] |
             SOURCE    [src1 [src2 ...]]       |
             TEST      [test1 [test2 ...]]     |
             CACHE     [entry1 [entry2 ...]]>
             [APPEND][APPEND_STRING]
             PROPERTY <name>[value1 [value2 ...]])

②  获取属性值

get_property: '获取'一个属性值

get_property(<variable>
               <GLOBAL             |
                DIRECTORY [dir]    |
                TARGET    <target> |
                SOURCE    <source> |
                TEST      <test>   |
                CACHE     <entry>  |
                VARIABLE>
                PROPERTY <name>
                [SET | DEFINED |BRIEF_DOCS | FULL_DOCS])

二  实践

①  项目初始化

1) '新建'一个项目目录-->'LibraryProperty'-->'cd进入'

2) 创建'src'子目录用于'保存'源文件

3) 创建'build'子目录用于'外部编译'

4) 编写'项目根目录'下'CMakeLists.txt'文件

②  编写根目录CMakeLists.txt文件

③  src子目录添加生成库头文件源文件

④  编写src子目录下CMakeLists.txt文件

⑤  报错1

原因: 不能有'相同名称'的目标 -->'特制前缀'

疑惑: 理论上一个为'.so'结尾、一个为'.a'结尾的?

⑥  如何解决上面的报错

方式1: '随便'修改其中一个'库'的名称 --> '不再演示'

场景: 如果想让'静态库'和'动态库'同一前缀呢?

备注: 20行'修改'为--> message(STATUS "UNDEFINE_NAME = ${UNDEFINE_VALUE}")

体会: '语法格式'

⑦  继续测试

⑧  动态库其它属性设置

效果: 动态库带'有版本号',并且有两个'链接文件'

1)带有'VERSION'的库

2)带有'SOVERSION'的库

⑨  继续修改

install参数

⑩  测试

备注: '库'被成功安装到'指定目录'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值