cmake实践使用(一)

前言

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)
假设有一个项目是使用了cmake的语法进行编写
在linux使用cmake将会生成makefile文件
在window使用cmake将会生成vs工程文件
windows上使用CMake
所以说同一份代码,可以运行在不同的平台而产生相同的结果,这就是cmake的魅力了
  
  

Linux平台

普通用法

cmake ..
make
make install 

  
gcc、g++、make的区别
参考Linux下gcc/g++、make和cmake的区别
补充:make是linux的一条命令

我们知道编译和链接阶段是靠g++和gcc编辑器来完成,这两个编译阶段是相同的,但是链接阶段g++默认链接c++库,所以一般情况下用gcc编译c文件,而g++编译cpp文件。
但是如果编译和链接的阶段如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理编译源文件呢,于是就有了make工具,它是一个自动化编译工具,你可以使用一条命令实现完全编译
  
make install
make install 命令就是将可执行文件、第三方依赖包和文档拷贝到设置的路径

mkdir testCmake
vim main.c
vim CMakeLists.txt
###main.c中的内容
#include<stdio.h>
int main()
{
     printf("Hello World from t1 Main!\n");
     return 0;
 }
###CMakeLists.txt中的内容
cmake_minimum_required(VERSION 2.8.9)
PROJECT(HELLO) 
add_executable(helloMain main.c)
执行下面命令
cmake .
make 
./helloMain
输出结果:
Hello World from t1 Main!

假设不在当前目录下执行./helloMain,会报下面的错
在这里插入图片描述
现在改变一下CMakeLists.txt中的内容

cmake_minimum_required(VERSION 2.8.9)
PROJECT(HELLO) 
add_executable(helloMain main.c)
install(TARGETS helloMain
        RUNTIME DESTINATION bin)
cmake .
make 
###将helloMain拷贝到了/usr/local/bin/下
sudo make install

在这里插入图片描述
在这里插入图片描述

在任意位置输入helloMain都不会报错而且运行结果相同

上面是被写固定的做法,还有一种做法。比如在安装DCMTK时
ccmake …
在这里插入图片描述
BUILD_SHARED_LIBS =ON
#安装的位置
CMAKE_INSTALL_PREFIX =/home/jack/Music/Local

make
make install

结果
在这里插入图片描述
在Local文件夹下面多出了bin etc include lib share等目录

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值