Cmake学习总结(二)
大家好,上次给大家分享了第一篇 cmake 文章:cmake学习总结(一),今天继续给大家分享cmake。那么废话就不多说,开始内容分享。
用好 Cmake,高兴一整天(甚至……):
1、多个源文件,使用命令 aux_source_directory(dir var):
在上一篇文章最后结尾的时候,有一个问题,就是在同一目录下面,有多个源文件的时候,这个时候你不能都往下面第三条命令里面一直手动添加源文件,那工作效率多低啊:
cmake_minimum_required(VERSION 2.8)
project(main)
add_executable(main main.c test1.c)
于是乎为了解决这种低效率的操作,在 cmake 里面有一条指令可以完全搞定这个问题;不过为了说明问题,在这之前我又添加了两个文件:test2.c 和 test2.h:
root@txp-virtual-machine:/home/txp/test# ls
1 cmake_install.cmake main.c test1.h touch1.c
CMakeCache.txt CMakeLists.txt Makefile test2.c touch1.h
CMakeFiles main test1.c test2.h
test2.c内容如下:
#include <stdio.h>
#include "test2.h"
void func1()
{
printf("i like the cmake");
}
test2.h内容如下:
#ifndef _TEST2_H_
#define _TEST2_H_
void func1();
#endif
最后main.c里面调用了func1函数:
#include <stdio.h>
#include "test1.h"
#include "test2.h"
int main(void)
{
func1();
func(8);
printf("TXP嵌入式");
return 0;
}
接下来我们的重点就来了,在cmake里面可以使用aux_source_directory(dir var)就可以搞定上面效率低的问题,接下来我们在CMakeLists.txt这样操作:
cmake_minimum_required(VERSION 2.8)
project(main)
aux_source_directory(. SRC_LIST)
add_executable(main ${SRC_LIST})
然后再进行编译:
root@txp-virtual-machine:/home/txp/test# cmake .
-- Configuring done
-- Generating done
-- Build files have been written to: /home/txp/test
root@txp-virtual-machine:/home/txp/test# make
Scanning dependencies of target main
[ 25%] Building C object CMakeFiles/main.dir/main.c.o
[ 50%] Linking C executable main
root@txp-virtual-machine:/home/txp/test# ./main
i like the cmake
the b is 8
TXP嵌入式
图片新闻
最新活动更多
-
11月28日立即报名>>> 2024工程师系列—工业电子技术在线会议
-
11月29日立即预约>> 【上海线下】设计,易如反掌—Creo 11发布巡展
-
11月30日立即试用>> 【有奖试用】爱德克IDEC-九大王牌安全产品
-
即日-12.5立即观看>> 松下新能源中国布局:锂一次电池新品介绍
-
12月19日立即报名>> 【线下会议】OFweek 2024(第九届)物联网产业大会
-
即日-12.26火热报名中>> OFweek2024中国智造CIO在线峰会
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论