简单介绍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)#可执行程序名,可执行程序源文件,可执行程序调用的源文件

 

 

posted on 2023-09-15 15:09  邗影  阅读(693)  评论(0编辑  收藏  举报

导航