TARS中CMAKE实践

1、cmake任意路径执行

   CMAKE(放在哪个目录下都可以执行),CAMKE中的头文件和库文件以绝对路径链接,一般本地测试用,因为不同环境下绝对路径不一定相同。
在这里插入图片描述

2、CMAKE固定路径下执行(与项目框架强耦合)

   相对路径CMAKE执行,放在某一固定目录中,若与框架强耦合,在build目录下cmake执行全局的cmakeList.txt,才能执行子模块下的CmakeList.txt。如在ConfigServer下新建unittest目录,unittest目录下的CmakeList.TXT 如下所示,上一级父目录的CmakeList.txt中要加add_subdirectory(unittest)。根目录下的CMakeList执行才能执行子目录的CmakeList,这样会有强耦合关系。此处用了find_packet命令也可用find_library命令。子目录生成的库,父目录可以直接通过库名调用。
在这里插入图片描述

3、CMAKE固定路径下执行(与项目框架弱耦合)

   相对路径CMAKE执行,放在某一固定目录中,若与框架弱耦合,如在ConfigServer下新建unittest目录,unittest目录下的CmakeList.TXT 如下所示。只是路径依赖,没有执行依赖。有两种常见方法find_library()与link_directories()。如下,其中find_library()的搜索路径只能是包所在的上级目录。否则搜索不到,若不加搜索路径则去默认路径、/usr/lib /usr/lib64 /usr/local/lib/下去查找相应的库文件。
注意:servant和util的静态链接库有链接顺序的问题。

在这里插入图片描述
在这里插入图片描述
   一般情况下希望直接通过link_library函数的形式直接连接库的名字,但是库可能不在默认的搜索路径下,这时应该通过make install的形式把框架生成的库安装到默认的路径下,make install的安装路径在cmake中通过install命令定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值