cmake 1

安装Cmake

插一个有关动态库和静态库知识

第一个案例

在linux下写一个c++程序,打印出一段字符串,编译运行。

首先创建两个文件:

touch test.cpp
touch CMakeLists.txt

test.cpp:

#include<iostream>
using namespace std;
int main()
{
        cout<<"Hello CMake!"<<endl;
        return 0;
}

CMakeLists.txt:

cmake_minimum_required(VERSION 3.6)
project(Test)
add_executable(Test test.cpp)

上面c++的程序就不说了,看看CMakeLists.txt。

命令功能
cmake_minimum_required指定使用cmake的最低版本
project(项目名)生成的项目名
add_executable(可执行程序名,源文件名)生产可执行程序

第一个命令可以省略,但是新的版本更新的命令可能在旧的版本中不能使用,建议写上。
第二个命令project也就是写一个构建出来的项目名字。除了指定名字外,这个命令还可以接一些参数,来说明构建的项目版本,描述,url等。
第三个命令主要是第二个参数,如果项目有多个源文件,就依次将源文件放在后面就行了。


创建的文件写完后,在linux下依次执行以下命令:

cmake .
make
ls

然后会看到生成的多个文件:

CMakeCache.txt  CMakeFiles  cmake_install.cmake  CMakeLists.txt  Makefile  poj.cpp  t1.h  Test

我们需要关心的就只有那个绿色的可执行文件。那么生成的多余的文件,我们可以给他们创建一个目录放进去,以免打扰我们的视线。

set的使用

定义变量

set(var [value])

set就是设置一个变量代替一个字符串,用c++来类比的话就是

set(src hello cmake) 
可以等价于
string src = "hello cmake"

要取变量src的值需要使用${src}。就是把变量名写在$大括号里。

设定编译器标准

set还可以设置c++标准,如c98 c++11 C++14 c++17 c++20等。

set(CMAKE_CXX_STANDARD 11)

CMAKE_CXX_STANDARD 是一个宏,可以记一下。

除了在CMakeLists里面设置编译标准,还可以在执行cmake的时候指定这个宏的值。

cmake CMakeLists.txt文件路径 -DCMAKE_CXX_STANDARD=11

然后就会生产一个makefile。指定的标准就会写入makefile文件中。那么我们通过makefile里面的规则去构建项目的时候编译器就会根据这个标准去对程序进行编译。

指定输出的路径

set的第三个用法语法是不变的。

set(HOME /home/robin/sort/)
set(EXECUTABLE_OUTPUT_PATH ${HOME}/bin)

第一个set设置了一个变量,第二个set设置了可执行文件的输出路径,如果这个路径的子目录不存在会自动生成。建议使用绝对路径。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值