侵权投诉
订阅
纠错
加入自媒体

Cmake学习总结(二)

2020-07-02 10:59
TXP嵌入式
关注

大家好,上次给大家分享了第一篇 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嵌入式

1  2  3  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

扫码关注公众号
OFweek电子工程网
获取更多精彩内容
文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号