c/c++语言开发共享一个简单的cmake例子

一个简单的cmake例子CMakeLists.txt,生成动态库文件,可以指定发布目录。 尚不支持: 1、交叉编译环境配置 2、添加依赖库 1 #在当前目录新建一个build目录,然后cd build;cmake .. 2 #这样的好处是,可以将cmake生成的内容,和源码文件分离 3 4 #定义好 …

一个简单的cmake例子cmakelists.txt,生成动态库文件,可以指定发布目录。
尚不支持:
  1、交叉编译环境配置
  2、添加依赖库
 
 1 #在当前目录新建一个build目录,然后cd build;cmake ..   2 #这样的好处是,可以将cmake生成的内容,和源码文件分离   3     4 #定义好版本需求   5 cmake_minimum_required (version 2.6)   6 #工程免费精选名字大全   7 project (libtree)   8 #编译结果发布路径   9 set ( cmake_install_prefix ./_install)  10    11 ## the version number.  12 set (tutorial_version_major 1)  13 set (tutorial_version_minor 0)  14    15 #设置源码文件,分别是avl.c rb.c splay.c  16 set (libhello_src avl.c rb.c splay.c)  17    18 #动态库  19 add_library (tree shared ${libhello_src})  20 #静态库  21 add_library (tree_static static ${libhello_src})  22    23 set_target_properties (tree_static properties output_name "tree")  24 get_target_property (output_value tree_static output_name)  25 message (status "this is the tree_static output_name: " ${output_value})  26    27 # cmake在构建一个新的target时,会尝试清理掉其他使用这个免费精选名字大全的库,  28 # 因此,在构建libtree.a时,就会清理掉libtree.so.  29 # 为了回避这个问题,比如再次使用set_target_properties定义 clean_direct_output属性。  30 set_target_properties (tree_static properties clean_direct_output 1)  31 set_target_properties (tree properties clean_direct_output 1)  32    33 # 按照规则,动态库是应该包含一个版本号的,  34 # version指代动态库版本,soversion指代api版本。  35 set_target_properties (tree properties version ${tutorial_version_major}.${tutorial_version_minor} soversion 1)  36  38 #在本例中我们将tree的共享库安装到<prefix>/lib目录;  39 # 将libtree.h安装<prefix>/include/tree目录。  40    41 install (targets tree tree_static library destination lib archive destination lib)  42 install (files libtree.h destination include/tree)

 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/604729.html

(0)
上一篇 2021年5月12日
下一篇 2021年5月12日

精彩推荐