使用cmake 可以很方便地管理编译命令,处理各种复杂的依赖关系,而且网络上下载的各种库、示例代码大都是要用cmake来编译安装。尝试使用两个方式编译cmake,各有优缺点。
一、在终端内编译:
需要首先简单介绍CMakeLists的命令行:
例:
#声明要求的 cmake 最低版本
cmake_minimum_required(VERSION 2.8 )
#声明一个 cmake 工程
project(HelloSLAM )
#设置编译模式
set(CMAKE_BUILD_TYPE "Debug" )
#添加一个可执行程序
#语法:add_executable( 程序名源代码文件 )
add_executable(helloSLAM helloSLAM.cpp )
#添加一个库
add_library(hello libHelloSLAM.cpp )
#共享库
add_library(hello_shared SHARED libHelloSLAM.cpp )
add_executable(useHello useHello.cpp )
#将库文件链接到可执行程序上
target_link_libraries(useHello hello_shared )
—————————————————————————————
下面是在终端内常用的编译指令:
例:
# 进入到CMakeLists.txt 所在的目录
cd [path-to-project]
# 在CMakeLists.txt 所在目录下新建名为build的子目录
mkdir build
# 进入到build
cd build
# 使用cmake执行上一层的CMakeLists.txt(后面有两个..因此为上一级目录,同一目录下为cmake . ) 注意cmake 与后面的.中间有一空格
cmake ..
make
—————————————————————————————
生成可执行文件后,用"sh"来运行文件,或者"./"
比如你在/usr/temp文件夹中有一个可执行文件"flash"
你可以在终端中输入 sh /usr/temp/flash
或者进入文件夹 cd /usr/temp 然后运行: ./flash
如果编译的是库文件,例如Pangolin、Opencv的话,编译生成的是安装包,使用以下命令安装:
sudo make install
---------------------
作者:Clever_idiot
转载:https://blog.youkuaiyun.com/qq_37912886/article/details/77950438