cmake学习总结(一)

TXP嵌入式
关注

小结:

从上面简单的示例我们可以看出,Cmake所有的语句都是写在一个名为"CMakeLists.txt"的文本文件里面,所以完成一个工程用cmake管理的完整步骤如下:

1、先建立CMakeLists.txt(这跟我们用makefile来管理工程一样,都有一个特殊的文件来专门书写工程管理代码的,cmake也不例外,使用CMakeLists.txt文本文件来专门书写代码管理工程项目)。

2、然后进行往CMakeLists.txt写配置,具体简单配置参考上面的形式写,复杂的配置,我们会在下面进行演示讲解的。

3、接着使用命令"cmake .",这里必须是CMakeLists.txt同级目录下执行这个命令哈,生成makefile等文件

4、最后使用make命令进行工程编译,进而生成可执行文件。

3、同一个目录有多个源文件:

这里我们在当前目录再添加两个文件:test1.c和test1.h。test1.c文件内容如下:

#include <stdio.h>

#include "test1.h"

void func(int a)

printf("a=%d",a);

test1.h里面的内容如下:

#ifndef _TEST1_H

#define _TEST1_H

void func(int a);

#endif /* _TEST1_H */

然后在main。c里面进行调用func()这个函数:

#include <stdio.h>

#include "test1.h"

int main(void)

func(6);

printf("TXP嵌入式");

return 0;

然后这个时候我们的CMakeLists.txt里面书写形式肯定要改了:

cmake_minimum_required (VERSION 2.8)

project (main)

add_executable(main main.c test1.c)

最终结果如下:

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

[ 50%] Building C object CMakeFiles/main.dir/main.c.o

[100%] Building C object CMakeFiles/main.dir/test1.c.o

Linking C executable main

[100%] Built target main

root@txp-virtual-machine:/home/txp/test# ls

1  CMakeCache.txt  CMakeFiles  cmake_install.cmake  CMakeLists.txt  main  main.c  Makefile  test1.c  test1.h

root@txp-virtual-machine:/home/txp/test# ./main

a=6

TXP嵌入式

小结:

上面的CMakeLists.txt的写法,你会注意到add_executable(main main.c test1.c)多了一个源文件(你可以把源码看作成加工的原材料,在makefile里面也是这样来理解目标文件的生成!),所以如果你还要往当前目录下添加源文件的话,在书写CMakeLists.txt文本文件时,直接在第三个语句里面添加源文件;不过这种方式有缺陷,比如说,如果当前文件下有几百个源文件,这个时候你不可能一个个去手写敲吧,不然这样就又回到了原始社会,就不能体现cmake的优越性出来了!更多用法,且听下回细解!

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

下载OFweek,一手掌握高科技全行业资讯

还不是OFweek会员,马上注册
打开app,查看更多精彩资讯 >
  • 长按识别二维码
  • 进入OFweek阅读全文
长按图片进行保存