ubuntu系统CMakeLists例子

ubuntu系统CMakeLists例子

首先使用mkdir命令创建一个文件夹cmake01用于保存文件
然后在该文件夹下创建main.cpp文件,将下面代码写入main.cpp文件中并保存

include<iostream>
using namespace std;
int main()
{
cout<<"helllword"<<endl;
}

创建一个CMakeLists.txt文件(注意区分大小写)
然后将下面代码写入文件并保存

PROJECT (HELLO)
SET(SRC_LIST main.cpp)
MESSAGE(STATUS "this is BINARY dir" ${HELLO_BINARY_DIR})
MESSAGE(STATUS "this is SOURCE dir "${HELLO_SOURCE_DIR})
ADD_EXECUTABLE (hello ${SRC_LIST})

使用cmake命令编译CMakeLists文件,编译成功后如下
编译完成
编译完成后会出现以下文件
在这里插入图片描述
使用make命令执行Makefile得到一个可执行文件hello,执行./hello文件,到此为止CMakeLists就执行成功了
在这里插入图片描述
下面解释一下CMakeLists中各项参数的用法
project关键字
可以用来指定工程的名字和支持的语言,默认支持所有语言
PROJECT(HELLO)制定了工程的名字,并且支持所有语言
PROJECT (HELLO CXX)指定了工程的名字,并且支持语言是c++
PROJECT (HELLO C CXX JAVA)指定了工程的名字,并且支持语言是C C++ JAVA
隐式定义了两个CMAKE的变量
_BINARY_DIR,本例中是HELLO_BINARY_DIR
_source_DIR,本例中是HELLO_SOURCE_DIR
MESSAGE 关键字就可以直接使用两个变量,当前都指向当前的工作目录,
问题:如果改了工程名,这两个变量名也会改变
解决:又定义两个预定义变量,PROJECT_BINARY和PROJECTSOURCE_DIR,这两个变量和HELLO_BINARY_DIR,HELLO_SOURCE_DIR 是一致的

SET关键字
用来显示指定变量的
SET(SRC_LIST main.cpp) SRC_LIST变量就包含main.cpp
也可以SET(SRC_LIST main.cpp test1.cpp test2.cpp)

MESSAGE 关键字
向终端输出用户自定义的信息
主要包含三种信息:
SEND_ERROR,产生错误,生产过程被跳过
STATUS,输出前缀为-的信息
FATAL_ERROR 立刻终止所有cmake过程

ADD_EXECUTABLE关键字
生成可执行文件
ADD_EXECUTABLE(HELLO ${SRC_LIST}) 生成可执行文件名为hello ,源文件读取变量SRC—_LISTZ中的内容,也可以直接写成ADD_EXECUTABLE(hello main.cpp)
上述例子可以简化的写成
PROJECT(HELLO)
ADD_EXECUTABLE(hello main.cpp)
注意工程名的HELLO和生成可执行文件名的hello是没有任何关系的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值