【CMake】基本操作

基本操作

  • cmake下载
  • CMakeLists
  • 多文件
  • 多目录
  • 链接库

只是收集了csdn上的讲解
仅供参考

cmake下载

刚开始下载了几次,cmake都not found
新建一个文件夹,在新建的文件夹下用指令安装即可解决

dong@dong-VirtualBox:~$ mkdir cmakework
dong@dong-VirtualBox:~$ cd cmakework

CMakeLists

然后在main.c相同目录下编写CMakeLists.txt,内容如下,


cmake_minimum_required (VERSION 2.8)
 
project (demo)
 
add_executable(main main.c)

第一行意思是表示cmake的最低版本要求是2.8(我的为3.10.2,因此修改为3.10.2)
第二行是表示工程名叫demo;
第三行比较关键,表示最终要生成的elf文件的名字叫main,使用的源文件是main.c
在终端下切到main.c所在的目录下,然后输入以下命令运行cmake,

多文件

CMakeLists指令:aux_source_directory()
它会把指定目录下的所有源文件都加进来,可能会加入一些我们不需要的文件
指定目录即当前根目录

aux_source_directory(. var)
add_executable(SLAM  ${var})

CMakeLists指令:set
自定义var变量为所需要的文件

set( var
        ./main.cpp
        ./test.h
        ./testch2.cpp)

多目录

一般会把源文件放到src目录下
把头文件放入到include文件下
生成的对象文件放入到build目录下
最终输出的elf文件会放到bin目录下
这样整个结构更加清晰。
【CMake】基本操作_第1张图片
CMakeLists指令:add_subdirectory()
这个命令可以向当前工程添加存放源文件的子目录,并可以指定中间二进制和目标二进制的存放位置,具体用法可以百度。
这里指定src目录下存放的源文件,当执行cmake时,就会进入src目录下去找src目录下的CMakeLists.txt,所以在src目录下也建立一个CMakeLists.txt

aux_source_directory (. SRC_LIST)
 
include_directories (../include)
 
add_executable (main ${SRC_LIST})
 
set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)

set设置变量
EXECUTABLE_OUTPUT_PATH :目标二进制可执行文件的存放位置,即make编译的文件存放在bin文件夹(地址./bin)
PROJECT_SOURCE_DIR:工程的根目录(即最大的文件夹目录,已定义,即project的目录)
源文件全部放scr里

链接库

cmake_minimum_required(VERSION 3.10.2)
project(SLAM)

set(CMAKE_CXX_STANDARD 14)
set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)
set (SRC_LIST ${PROJECT_SOURCE_DIR}/scr/main.cpp)

add_executable (main ${SRC_LIST})

target_link_libraries (main ${PROJECT_SOURCE_DIR}/lib/libtestFunc_shared.so)

可执行程序存在bin文件夹下,执行时先cd到bin文件夹
设置变量(没啥用)
生成可执行文件
链接库文件,库文件的绝对地址 根目录下的.so或.a文件

你可能感兴趣的:(c++,开发语言)