CMakeLists.txt文件

举例说明:CMake 构建 HelloSlam 工程
1.Ctrl + Alt + T 按键打开终端
2.在选定路径下建立工程文件夹: 
$ mkdir HelloSlam
3.构建 HelloSlam 的文件目录结构 
$ cd HelloSlam 

$ mkdir bin build include lib src 



bin      用来存放编译好的可执行二进制文件
build 在该文件夹下运行 cmake ,这样就不会污染源代码, 如果不想要这些自动生成的文件,只要简单的删除 build 文件夹就可以
include 用来放头文件
lib              用来放编译好的库文件
src            用来放源代码
4.文件目录结构 

5.文件内容
1)src/main.cpp
      #include <iostream>
      #include "CHello.h"
      int main(int argc,char** argv)
      {
           CHello myhello;
           myhello.print();
           return 1;
      }

2)include/CHello.h
     #ifndef HELLO_HEADER_H
     #define HELLO_HEADER_H


     class CHello
     {
     public:


       CHello(){}


       ~CHello(){}


       void print();
     };


     #endif

3)src/CHello.cpp
     #include <iostream>
     #include "CHello.h"


     void CHello::print()
     {
         std::cout << "hello slam..." << std::endl;
     }

4)CMakeLists.txt
     # 声明要求的 cmake 最低版本
     CMAKE_MINIMUM_REQUIRED(VERSION 2.8)


     # 声明一个 cmake 工程
     PROJECT(HELLOSLAM)


     # 设置编译器
     SET(CMAKE_CXX_COMPILER "g++")


     # 设置编译模式 (Debug/Release)
     SET(CMAKE_BUILD_TYPE "Debug")


     # 显示执行构建过程中详细的编译信息
     SET(CMAKE_VERBOSE_MAKEFILE on)


     # 指定可执行文件目录
     SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin)


     # 指定库文件目录
     SET(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)


     # 指定头文件目录
     INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/include)


     # 指定源文件目录
     SET(SOURCE_DIR ${PROJECT_SOURCE_DIR}/src)


     # 增加一个可执行的二进制文件
     ADD_EXECUTABLE(HelloSlam ${SOURCE_DIR}/main.cpp)


     # 生成库文件:libhello.so
     ADD_LIBRARY(hello SHARED ${SOURCE_DIR}/CHello.cpp)


     # 将库文件链接到可执行程序
     TARGET_LINK_LIBRARIES(HelloSlam hello)   

运行程序 
$ cd build 
$ cmake .. 
$ make 
$ ../bin/HelloSlam 

终端输出: hello slam

参考高翔SLAM十四讲博文,记录CMake工程

猜你喜欢

转载自blog.csdn.net/wangxin0205/article/details/80567599