Liunx 与 CMake (二)——从改错开始

目标:要使得lightssd文件夹中可以在CMake下正确的编译,源程序是没有错误的,是CMakeLists.txt这个文件存在部分错误。

先看看文件的框架:

./lightssdp
|-CMakeFiles
|-include/
	|-4个后缀为.h的文件
|-sample/
	|-Makefile
	|-ssdp_clie.c
|-src/
	|-Makefile
	|-各种后缀为.o、.c、.h文件
|-CMakeCache.txt
|-cmake_install.cmake
|-CMakeLists.txt
|-Makefile
|-Makefile.cfg

再看看主目录对应的CMakeFiles后就准备着手改了。

在修改之前看一下各种语法的介绍吧:

一、关键字

PROJECT关键字

可以用来指定工程的名字和支持的语言,默认支持所有语言。

PROJECT(HELLO) 指定了工程的名字,并且支持所有语言(常用)

PROJECT(HELLO CXX) 指定了工程语言为C++以及提及了工程名字

PROJECT(HELOO C CXX) 指定了工程的名字,并且支持名字是C和C++

该指定会生成两个CMake的变量,分别是:

${PROJECT_NAME}_ BINARY _ DIR(在本例中是LIGHTSSDP_BINARY_DIR)

${PROJECT_NAME}_SOURCE_DIR(在本例中是LIGHTSSDP _ SOURCE _ DIR)

使用MESSAGE关键字就可以直接使用两个变量,当前都指向当前的工作目录。

MESSAGE(STATUS "This is BINARY dir:" ${LIGHTSSDP_BINARY_DIR})
MESSAGE(STATUS "This is SOURCE dir:" ${LIGHTSSDP_SOURCE_DIR})

使用这个的问题在于是,他会随着文件的名字改变而改变这个两个变量名。

解决方法:定义变量PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR,这两个变量和LIGHTSSDP_BINARY_DIR、LIGHTSSDP_SOURCE_DIR是一致的,在改变名字的时候他不会改变。

SET关键字

用来显示指定的变量的。

SET(SRC_LILST main.c) 那么SRC_LILST变量就包含了main.c。也可以在括号里面加很多的.c文件。

MESSAGE关键字

向终端输出用户自定义的信息。

主要包含三种信息:

  • SEND_ERROR:产生错误,生成过程被跳过。

  • SATUS:输出前缀为-的信息,就像我们在终端中打入make一样,会产生前缀为--的信息。

  • FATAL_ERROR:立即终止所有cmake过程。

ADD_EXECUTABLE关键字

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郑烯烃快去学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值