Cmake-构建

14 篇文章 0 订阅

Cmake:用来构建工程的一个工具,目的就是生成makefile

一个简单的使用-用很少的语句-本地构建

1.编写源代码。mian.c

vi main.c
# 写入一下内容
#include<stdio.h>

int main()
{
    printf("hellow\n");

    return 0;
}



2. 编写CmakeLists.txt,注意大小写

vi CMakeLists.txt
# 写入一下内容
PROJECT(HELLOW)

SET(SRC_LIST main.c)

ADD_EXECUTABLE(hellow ${SRC_LIST})

3. 使用cmke生成makefile文件,用makefile编译生成可执行程序。

注意:如果不新加源文件,不用重新生成Makefilw文件,修改代码执行make就行了

cmake .  # 注意一定要加 .  表示当前目录 
ll # 查看文件 有Makefile文件生成
make # 执行makefile编译,生成可执行程序
# 运行程序
./hellow
# 输出
hellow


2.一个比较复杂的构建-外部构建

把构建所产生的文件都放在一个单一的目录下面,如我在源码路径下面新建一个build文件夹。把构建所产生的文件都放在这里。

# 和上面一样新建一个这样的文件目录
wang@ubuntu:~/Desktop/cmake/hellow$ ls
build  CMakeLists.txt  main.c
wang@ubuntu:~/Desktop/cmake/hellow$ tree
.
├── build
├── CMakeLists.txt
└── main.c

1 directory, 2 files
# 执行cmake生成Makefile 文件
wang@ubuntu:~/Desktop/cmake/hellow$ cd build/
wang@ubuntu:~/Desktop/cmake/hellow/build$ ls
wang@ubuntu:~/Desktop/cmake/hellow/build$ cmake ..
...
wang@ubuntu:~/Desktop/cmake/hellow/build$ ls
CMakeCache.txt  CMakeFiles  cmake_install.cmake  Makefile
wang@ubuntu:~/Desktop/cmake/hellow/build$ ls
CMakeCache.txt  CMakeFiles  cmake_install.cmake  Makefile
wang@ubuntu:~/Desktop/cmake/hellow/build$ make
# 执行可执行文件
wang@ubuntu:~/Desktop/cmake/hellow/build$ ls
CMakeCache.txt  CMakeFiles  cmake_install.cmake  hellow  Makefile
wang@ubuntu:~/Desktop/cmake/hellow/build$ ./hellow 
hellow world

3.一个更加复杂的构建-真的像是一个工程

这个构建包含bin文件夹,readme,doc文件等等,,比较正式

4. 安装命令-INSTALL

卸载最外层的CMakeLists.txt就行了

# FILES:表示安装的文件;DESTINATION:表示安装的目标路径 
INSTALL(FILES COPYRIGHT README DESTINATION share/doc/cmake/)
# PROGRAMS :安装不是可执行文件的东西,如脚本
INSTALL(PROGRAMS runhellow.sh DESTINATION bin)
# DIRECTORY :表示安装目录
INSTALL(DIRECTORY doc/ DESTINATION share/doc/cmake)

5.构建动态库和静态库命令

6.安装静态库和动态库,并写程序调用

7. 链接已经安装的库

# 工程名字
PROJECT(HELLOW)
# 定义变量
SET(SRC_LIST main.c)
# 添加头文件搜索路径
INCLUDE_DIRECTORIES(/usr/local/include/json-c/)
# 添加链接库的搜索路径
LINK_DIRECTORIES(/usr/local/lib/)
# 生成可执行文件
ADD_EXECUTABLE(main ${SRC_LIST})
# 链接库 main是自己生成的可执行程序
TARGET_LINK_LIBRARIES(main libjson-c.a)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值