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命令定义。