// 指定需要的最小的camke版本
cmake_minimum_required(VERSION 2.8)
project(demo) # project(demo)[]指定工程支持的语言,如果忽略表示支持所有的语言
//设置C++编译模式
//Release和Debug之间的区别:
// Release: -O3 -DNDEBUG
// Debug: -g
set(CMAKE_BUILD_TYPE Release)
// 设置C++编译参数(CMKE_CXX_FLAGS是全局变量)
set(CMAKE_CXX_FLAGS “${CMAKE_CXX_FLAGS} -std=c++11 -Wall -Ofast -Wfatal-errors”)
//在当前目录下存在子目录时使用,子目录中需要含有CMakeLists.txt文件
add_subdirectory(KaTeX parse error: Expected '}', got 'EOF' at end of input: …e_directories({CMAKE_CURRENT_SOURCE_DIR}/…/code)
// 包的名称以及最低版本 没写就是对版本号不做限制
FIND_PACKAGE(OpenCV REQUIRED)
// 指定include路径src才能正确定位头文件
include_directories(
O
p
e
n
C
V
I
N
C
L
U
D
E
D
I
R
S
)
/
/
指
定
链
接
器
查
找
库
路
径
l
i
n
k
d
i
r
e
c
t
o
r
i
e
s
(
{OpenCV_INCLUDE_DIRS}) // 指定链接器查找库路径 link_directories(
OpenCVINCLUDEDIRS)//指定链接器查找库路径linkdirectories({OpenCV_LIBRARIES_DIRS})
// 引入一个名为可执行目标,该目标会由调用该命令时在源文件列表中指的的源文件来构建,对应于逻辑目标的名字在工程范围内必须是全局唯一的
//可执行文件由哪些.o文件来生成
add_executable(CLASSIFER evalClassifNet.cpp eval.cpp dataReader.cpp)
链接库,把生成的classifer TrtNet库和OPenCV LIBS链接起来
target_link_libraries(classifer TrtNet ${OpenCV_LIBS})
// 要生成的可执行文件名 从工程目录下写起的主函数文件名
// 可执行文件生成,凡是要编译的源文件都要列出来
add_executable(runNet runNet.cpp)
// 天剑可执行文件所需的库(一般是刚刚生成的库)
target_link_libraries(runNet TrtNet ${OpenCV_LIBS})
//build runTwoNets
add_executable(runTwoNets runTwoNets.cpp)
target_link_libraries(runTwoNets TrtNet ${OpenCV_LIBS})
// install 指定可执行文件安装的路径
install(TARGETS classifer DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/install/)
install(TARGETS runNet DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/install/)
install(TARGETS runTwoNets DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/install/)
注: 注释符号本是# 但是为了格式好看换成 //