CMake2:版本号配置与头文件生成
1.基本测试
最基本的功能就是利用源代码文件生成一个可执行程序。CMakeLists.txt:cmake_minimum_required ( VERSION 3.5) project (Tutorial) add_executable(Tutorial tutorial.c)
Tutorial.c:
// A simple program that computes the square root of a number #include <stdio.h> #include <stdlib.h> #include <math.h>int main (int argc, char *argv[]) {double inputValue = 4;double outputValue = sqrt(inputValue);fprintf(stdout,"The square root of %g is %g\n",inputValue, outputValue);return 0; }
利用CMake组建,VisualStudio编译就可以生成可执行文件Tutorial.exe。
这里会出现一个问题就是Tutorial.exe点击后出现闪退,采用一下方法可以解决。
- exe目录下新建一个文本文档:新建文档.txt;
- 打开文档,键入内容:Tutorial.exe (换行) pause 注意XX.exe,XX是你的实际应用程序名;
- 保存文档,名字+后缀改为:Tutorial.bat;
- 点击Tutorial.bat文件即可解决闪退问题。
2.增加版本号并配置头文件
首先讨论的是给我们的项目/可执行程序添加一个版本号。当然我们可以在源代码中设置,但是在CMake中设置版本号会更加灵活。首先我们要修改CMakeLists.txt如下:cmake_minimum_required (VERSION 3.5) project (Tutorial) # The version number. set (Tutorial_VERSION_MAJOR 1) set (Tutorial_VERSION_MINOR 0)# configure a header file to pass some of the CMake settings # to the source code configure_file ("${PROJECT_SOURCE_DIR}/TutorialConfig.h.in""${PROJECT_BINARY_DIR}/TutorialConfig.h")# add the binary tree to the search path for include files # so that we will find TutorialConfig.h include_directories("${PROJECT_BINARY_DIR}")# add the executable add_executable(Tutorial tutorial.c)
因为配置文件将要被写入到二进制文件结构中,所以我们必须要把该文件添加到相应的路径列表中。首先,我们在源路径下创建TutorialConfig.h.in,如下:
// the configured options and settings for Tutorial #define Tutorial_VERSION_MAJOR @Tutorial_VERSION_MAJOR@ #define Tutorial_VERSION_MINOR @Tutorial_VERSION_MINOR@
!!该文件是在帮助我们利用CMake生成相应的TutorialConfig.h文件!!当CMake配置头文件的时候, @Tutorial_VERSION_MAJOR@ 和 @Tutorial_VERSION_MINOR@ 的值就会被 CMakeLists.txt 文件中得值所取代。
下面修改原文件Tutorial.c,使其包括配置的头文件并使用版本号,源代码修改如下:// A simple program that computes the square root of a number #include <stdio.h> #include <stdlib.h> #include <math.h> #include "TutorialConfig.h"int main (int argc, char *argv[]) {double inputValue = 4;double outputValue = sqrt(inputValue);fprintf(stdout,"The square root of %g is %g\n",inputValue, outputValue);fprintf(stdout,"%s Version %d.%d\n",argv[0],Tutorial_VERSION_MAJOR,Tutorial_VERSION_MINOR);return 0; }
输出结果:
CMake2:版本号配置与头文件生成相关推荐
- 【错误记录】Visual Studio 中配置 NDK 头文件路径 ( NDK 的三个头文件路径 | 与 CPU 架构相关 asm 头文件路径选择 )
文章目录 一.报错信息 二.解决方案 1.NDK 的三个头文件路径 2.与 CPU 架构相关 asm 头文件路径选择 一.报错信息 参考 [Android 逆向]Android 进程注入工具开发 ( ...
- 【Android NDK 开发】Visual Studio 2019 使用 CMake 开发 JNI 动态库 ( 动态库编译配置 | JNI 头文件导入 | JNI 方法命名规范 )
文章目录 I . JNI 与 NDK 区别 II . Visual Studio 编译动态库 III. 配置 导入 jni.h 头文件 IV . IntelliJ IDEA Community Edi ...
- 【错误记录】Visual Studio 中配置 NDK 头文件路径
文章目录 一.报错信息 二.解决方案 一.报错信息 参考 [Android 逆向]Android 进程注入工具开发 ( Visual Studio 开发 Android NDK 应用 | 使用 Mak ...
- Qt工程pro文件的配置和头文件和库的添加
Qt开发中,pro文件是对正工程所有源码.编译.资源.目录等的全方位配置的唯一方式,pro文件的编写非常重要,以下对几个重要项进行说明(win和linux,mac平台通用配置) 注释 以"# ...
- [C++] 使用<random>头文件生成均匀分布、正态分布的数据
一.摘要 对于满足指定分布的自由变量,如果无法通过分布函数公式计算得到其期望和方差,可以考虑使用采样法得到其期望.方差值的近似值.在此过程中需要按照特定的分布函数进行随机采样,并统计采样数据,可以使用 ...
- 在VS2017下配置pylon头文件
在VS2017下配置#include <pylon/PylonIncludes.h> 1.打开VS2017,点击文件一>新建一>项目,新建一个空项目: 2.右击解决方案资源管理 ...
- 【Android FFMPEG 开发】Android Studio 工程配置 FFMPEG ( 动态库打包 | 头文件与函数库拷贝 | CMake 脚本配置 )
文章目录 I . FFMPEG 交叉编译后的函数库及头文件 II . FFMPEG 静态库打包动态库 ( 仅做参考 ) III . 创建 Android Studio 工程 IV . FFMPEG 头 ...
- gsoap 学习 1-由wsdl文件生成h头文件
开始前先看一下用户向导吧 http://www.cs.fsu.edu/~engelen/soap.html 中左侧点击Documentation 英语水平确实有限,有些内容可能说的不准确,敬请参考向导 ...
- 【C++ 语言】Visual Studio 配置 POSIX 线程 ( Windows 不支持 POSIX | 配置文件下载 | 库文件说明 | 配置过程 )
文章目录 POSIX 线程局限性 POSIX 线程配置文件下载及目录说明 Windows 动态库与静态库 POSIX 线程配置 ( 项目配置 ) POSIX 线程配置 ( Windows 动态库拷贝 ...
最新文章
- JZOJ__Day 8:【普及模拟】马农
- Android Git 客户端
- 回调函数自定义传参_10分钟教你手写8个常用的自定义hooks
- 常用的后端性能优化六种方式:缓存化+服务化+异步化等
- 下学期第三次作业——SQA计划和验收测试规程设计
- 计算机常用工具软件教案,常用工具软件教案.doc
- CV《物体识别与检测2 - 多目标识别基本算法》
- Python实战从入门到精通第四讲——数据结构与算法2之实现一个优先级队列
- python web开发-flask中消息闪现flash的应用
- 在.NET中探测U盘的插入/拔出
- ASIFormDataRequest实现上传图片
- 冯诺依曼图熵(VNGE)Python实现及近似计算
- 元组-不仅仅是不可变的列表
- 兴业证券:主动偏股型基金评价体系
- Java基本数据类型之char
- 2寸的照片长宽各是多少_1寸和2寸的照片的长和宽各是几厘米?
- php怎么将农历转换成公历,PHP实现阳历到农历转换的类实例
- 记录一下java的常用单词
- Web服务器配置管理
- win10误删的注册表能还原吗_win10自带注册表恢复方法 win10注册表误删如何修复...