CMakeLists简介
工程项目文件管理工具,在make的基础上进一步封装,避免了程序员手动编写makefile的过程,由其辅助产生
例子1
新建main.cpp
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{
srand(time(0));
while(1)
{
printf("%d\n",rand()%100 + 1);
sleep(1);
}
return 0;
}
新建CMakeLists文件
cmake_minimum_required( VERSION 2.0 )
project( helloMain )
add_executable( helloMain main.cpp )
若在当前路径在执行cmake .,接着执行make .即可生成二进制可执行程序hellomain,但cmake生成的中间文件很多,会“污染”工程代码文件。
这时候,mkdir build cd build,cmake ..,这样中间文件即生成在build文件下,原工程目录没有被污染
例子2
在项目开发中,经常要引用别的库文件(.lib .a),可能是自己封装的写在另一个cpp中build生成.o ; 也可能是现有的库如gl.lib等。
情况1-自己封装
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <unistd.h>
#include "hello.h"
int main()
{
srand(time(0));
while(1)
{
printf("%d\n",rand()%100 + 1);
printHello();//此函数在hello.cpp中实现
sleep(1);
}
return 0;
}
#include <iostream>
using namespace std;
void printHello()
{
cout << "print hello"<<endl;
}
此时CMakeLists应当这样写
cmake_minimum_required( VERSION 2.0 )
project( helloMain )
add_library(hello hello.cpp)#由hello.cpp build生成hello.o,link生成libhello.a
add_executable( hellomain main.cpp )
target_link_libraries( hellomain hello )#hellomain链接找到libhello.a最终生成可执行二进制文件
本文介绍了CMakeLists在项目管理中的应用,包括基本用法及如何链接库文件。通过两个实例展示了如何创建可执行文件和使用自定义库。
1万+

被折叠的 条评论
为什么被折叠?



