打开根目录的CMakeList.txt,写入: # CMake最低版本号要求cmake_minimum_required(VERSION3.1)# 项目信息project(Demo)# 工程名# 指定子目录的CMake源文件add_subdirectory(src) 添加了一个新命令add_subdirectory这个是用来指定子目录的CMake源文件。 打开src目录下的CMakeList.txt,写入: # 如果需要进行调试需要...
SET(SRC_LIST main.c) # 设置子目录列表 SET(SUB_DIR_LIST "${CMAKE_CURRENT_SOURCE_DIR}/dir1" "${CMAKE_CURRENT_SOURCE_DIR}/dir2") # 遍历子目录列表 foreach(SUB_DIR ${SUB_DIR_LIST}) # 遍历源文件,保存到SRC_LIST中 aux_source_directory(${SUB_DIR} SRC_LIST) # 添加头文件路径 INCLUDE...
message(${CMAKE_SOURCE_DIR}) message("---") message("project_name:", ${PROJECT_NAME}) file(GLOB_RECURSE FOCUS_SRCS ${CMAKE_SOURCE_DIR}/../*.cc)# 查找、配置 opencvfind_package(OpenCV REQUIRED ) message("opencv_include_dirs:", ${OpenCV_INCLUDE_DIRS}) message("opencv_libs_name:", ...
TARGET_LINK_LIBRARIES(target library1 <debug | optimized> library2 ...)Specify a list of libraries to be linked into the specified target. The debug and optimized strings may be used to indicate that the next library listed is to be used only for that specific type of build 为所有目标统一...
build直接使用cmake build即可。CMake参数和命令 add_executable就是为项目添加所有的源代码,可以无限加add_executable(Example main.cpp my1.cpp my2.cpp my3.cpp)aux_source_directory(dir var)glob操作,将dir下的所有源文件存到var变量中,后续通过${var}进行调用aux_source_directory(. SRC_LIST)add_...
要搞明白makefile、Cmakelist.txt、Cmake的作用,首先要明白程序的编译过程: 在Linux系统下,对于一个hellow工程项目(仅包含hellow.cpp)的编译命令为: g++ -g hellow.cpp -o hellow,会生成一个hellow的可执行程序,直接 ./hellow即可运行程序,这里这个 -g表示添加gdb调试选项。 或者 g++ hellow.cpp -o hellow,会...
在cpp同级目录下新建CMakeLists.txt #cmakelists中不区分大小写 #项目名称 PROJECT(HELLOWORLD) #定义变量 将helloworld.cpp设置为SRC_LIST SET(SRC_LIST helloworld.cpp) #打印用户的一些信息(无关紧要) MESSAG…
# CMakeList.txt: OpenCV_Demo 的 CMake 项目,在此处包括源代码并定义 # 项目特定的逻辑。 # cmake_minimum_required (VERSION 3.8) # 设置 OpenCV 头文件 include_directories("Y:/001_DevelopTools/032_OpenCV/opencv/build/include/") # 设置 OpenCV 函数库搜索路径 link_directories("Y:/001_DevelopTools...
4.set(var a;b;c) <=> set(var a b c)#定义变量var并赋值为a;b;c这样一个string list 5.Add_executable(${var}) <=> Add_executable(a b c)#变量使用${xxx}引用 6.条件语句: if(var) #var非empty 0 N No OFF FALSE... #非运算使用NOT ...
foreach(item IN LISTS mylist) message(${item}) endforeach() 其中,item表示列表中的元素,mylist表示需要遍历的列表。LISTS表示mylist是一个列表。 总结 以上是CMake常用的命令,它们可以帮助我们更方便地管理项目的构建过程,提高项目构建的效率。除了上述命令,CMake还有很多其他的命令和功能,比如条件编译、预处理...