简单介绍cmakelist的使用
-
Windows平台
1 在文件夹中创建一个CPP文件;自己随便写一个主函数就行
写一个简单的c++main函数;
2 创建一个CMakeLists.txt 文件,写上下列内容;可以使用notepad,会对一些字段自动补齐
cmake_minimum_required(VERSION 3.5 FATAL_ERROR) Project(HELLOW-01 LANGUAGES CXX) add_executable(hello-test test1.cpp)
第一句:cmake的最低版本
第二句:这个CPP要用来创建一个项目,项目 名称是HELLOW-01,使用的语言: LANGUAGES CXX
第三句:生成执行程序,源文件是test1.cpp,执行程序是hello-test
3 打开Cmake软件 CMake (cmake-gui)[没有就去官网下载],按照图上的步骤输入信息,添加一个生成目录(winbuild,没有会自己生成),按照步骤点击,就会生成项目
4 生成的winbuild文件夹的内容;open project就可以打开了;
-
Linux平台如何编译
1 .将cpp和cmakelists.txt放到Linux文件夹
在控制台的这个文件夹下输入: cmake -DCMAKE_BUILD_TYPE=Release
2 .然后会有一些打印;之后输入make 就得到了可执行文件
Scanning dependencies of target hello-test [ 50%] Building CXX object CMakeFiles/hello-test.dir/test1.cpp.o [100%] Linking CXX executable hello-test [100%] Built target hello-test
3 .接下来 ./hello-test就可以得到执行结果;
-
批量生成多个可执行文件
1 先把可执行文件都准备好,如图我的测试程序有两个,我放在一个文件夹下了,你也可以放在不同的文件夹
2 修改cmakelists:
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
Project(HELLOW-01 LANGUAGES CXX)
#add_executable(hello-test test1.cpp)
set(source_dir ${PROJECT_SOURCE_DIR}/source) #cmakelistst同级目录下的source 目录
file(GLOB source_codes ${source_dir}/*.cpp) #查找 source_dir下的所有cpp,并放到source_codes 里
foreach(demo ${source_codes})
string(REGEX MATCH "[^/]+$" testfile ${demo}) #每一个cpp的名字,REGEX正则
string(REPLACE ".cpp" "" basename ${testfile})#取文件名中没有后缀的部分,REPLACE更换
add_executable(${basename} ${demo})#文件名和执行程序的名字不一样,每一个执行程序的名字也不一样
endforeach()
运行还按照上边的单个文件的运行逻辑
-
主程序调用资源文件
cmake_minimum_required(VERSION 3.5 FATAL_ERROR) Project(HELLOW-01 LANGUAGES CXX) include_directories(${PROJECT_SOURCE_DIR}/inc) #头文件目录 set(source_dir ${PROJECT_SOURCE_DIR}/source) #cmakelistst同级目录下的source 目录 add_executable(demo ${source_dir}/demo2.cpp ${source_dir}/test.cpp)#可执行程序名,可执行程序源文件,可执行程序调用的源文件