工程系列-CMakeLists.txt

1、cmake_minimum_required(VERSION 2.8)

cmake最低版本,如果CMake的当前版本低于指定的版本,它会停止处理工程文件,并报告错误

2、project(<projectname> [languageName1 languageName2 ...])

projectname:工程名

languageName:指定工程可以支持的语言。如project(Hello,C CXX),CXX即是C++

3、set( CMAKE_CXX_FLAGS "-std=c++11" )

添加c++11标准支持

4、find_package(包的名称及最低版本)

找到后面需要库和头文件的包

例如find_package(OpenCV 2.4.3 REQUIRED)

5、include_directories("路径")

头文件

#include_directories(

      ${PROJECT_SOURCE_DIR}

      ${PROJECT_SOURCE_DIR}/include

      ${EIGEN3_INCLUDE_DIR}

6、set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib)

设置路径(下面生成共享库的路径),即生成的共享库在工程文件夹下的lib文件夹中

7、add_library(${PROJECT_NAME} SHARED src/cpp文件名 …… )

创建共享库(把工程内的cpp文件都创建成共享库文件,方便通过头文件来调用)

这时候只需要cpp,不需要有主函数

${PROJECT_NAME}是生成的库名 表示生成的共享库文件就叫做 lib工程名.so  

### 配置和使用 CMakeLists.txt 文件 #### 创建新的 CMake 项目 在 Visual Studio 中启动新项目时,可以选择 `File -> New -> Project` 并在搜索框中输入 “CMake Project”。接着选择 `CMake 空项目` 来初始化一个基于 CMake 的工程模板[^3]。 #### 编写 CMakeLists.txt 文件 对于一个多模块的 C++ 项目而言,通常会有一个顶层的 `CMakeLists.txt` 文件以及各个子目录下的独立 `CMakeLists.txt` 文件。这些文件共同描述了整个项目的结构及其构建逻辑: - **顶层 CMakeLists.txt**: 定义全局属性、版本号、最低所需 CMake 版本等基本信息; - **各模块内的 CMakeLists.txt**: 描述具体模块的内容,比如源码位置、链接哪些外部库或者设置特定于该部分的目标编译参数; ```cmake # Top-level CMakeLists.txt example cmake_minimum_required(VERSION 3.10) project(MyProject) add_subdirectory(module1) add_subdirectory(module2) add_subdirectory(app) ``` #### 使用 CMake 命令进行安装部署 当完成开发并准备发布软件时,可以利用命令行工具来进行最终产物的打包操作。例如,要将生成的应用程序及其关联的数据文件复制到目标路径下,则可以通过如下方式实现: ```bash cmake --install . ``` 此指令会依据之前定义好的规则自动处理好所有必要的拷贝动作[^4]。 #### 利用 Visual Studio 功能增强体验 得益于 IDE 对 CMake 支持的良好集成度,在日常编码过程中能够享受到诸如 IntelliSense 提示、即时错误检测等一系列便利特性。即使面对较为复杂的大规模解决方案也依然保持流畅的工作流程[^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值