举例说明: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工程
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)