🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀 欢迎关注,加入学习交流群🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀
🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀 多位大佬加盟,助力学习 🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀
🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀 加群感受学习氛围! 🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀
什么是cmake
chatgpt 解释
CMake是一个跨平台的开源构建系统,用于控制软件构建过程的工具。它通过生成原生的构建文件来控制软件的编译过程,可以在不同的平台上生成多种不同的构建文件,如Makefile、Visual Studio解决方案等。CMake可以自动查找已安装的库和头文件,帮助用户配置工程,简化了构建过程。CMake使用CMakeLists.txt文件来描述软件构建过程。
- 就是用cmakelists 来构建管理项目,实现跨平台开发编译
常用语法
cmake_minimum_required(VERSION 3.5) # 版本指定
project(ncnn_demo) # 项目名称
add_executable(ncnn_demo main.cpp) # 指定执行文件
引用外部包
set(OPENCV_DIR "cmake/OPENCV") # 指定路径
find_package(OPENCV REQUIRED) # 代表必须找到, 否则报错
- 你所指定的地址必须啊,能找到一个类似opencvconfig.make 的配置文件(一般在你install会给到你 一般在install/lib下)
添加子目录
add_subdirectory(src)
代表添加src 为子目录, src下必须要有一个cmakelists.make文件
添加头文件目录
include_directories(...)
链接库文件
一般是找不到cpp文件的,需要你链接起来
target_link_libraries(target youcpp)
target 是主程序 youcpp 是库文件
常用的全局变量
CMAKE_SOURCE_DIR 当前cmakelists文件路径
CMAKE_CURRENT_SOURCE_DIR 源码路径
CMAKE_CURRENT_BINARY_DIR 二进制文件路径
message("当前源代码目录路径:${CMAKE_CURRENT_SOURCE_DIR}")
message("当前二进制目录路径:${CMAKE_CURRENT_BINARY_DIR}")
设置变量
set(PRO "hhh")