VS2015--win32工程配置的一些想法之cmake
来源:互联网 发布:勇者之塔祈祷数据 编辑:程序博客网 时间:2024/06/06 07:20
转载自大牛:http://blog.csdn.net/wangshubo1989/article/details/50590059
最近两天都在配置一个win32项目。为了实现跨平台,写底层代码的人只build了安卓和iOS的工程,没有build win32项目。由于对一些库不是很了解,配置起来很困难,心力交瘁。
为了实现跨平台,很多优秀的库都使用cmake生成我们所需要的工程。所以今天就主要谈一谈如何使用cmake吧,以下内容出自:http://www.cnblogs.com/lyq105/archive/2010/12/03/1895067.html
CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。
CMake 使用方法
CMake的所有的语句都写在一个叫:CMakeLists.txt 的文件中。当CMakeLists.txt文件确定后,可以用ccmake命令对相关 的变量值进行配置。这个命令必须指向CMakeLists.txt所在的目录。配置完成之后,应用cmake命令生成相应的makefile(在Unix like系统下)或者 project文件(指定用window下的相应编程工具编译时)。
其基本操作流程为:
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
其中directory为CMakeList.txt所在目录;
第一条语句用于配置编译选项,如VTK_DIR目录 ,一般这一步不需要配置,直接执行第二条语句即可,但当出现错误时,这里就需要认为配置了,这一步才真正派上用场;
第二条命令用于根据CMakeLists.txt生成Makefile文件;
第三条命令用于执行Makefile文件,编译程序,生成可执行文件;
CMake的执行就是这么简单,其难点在于如何编写CMakeLists.txt文件,下面结合例子简单介绍CMakeLists.txt的编写,看下面这个CMakeLists.txt
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
这是一个测试数学函数的程序的CMakeLists.txt,”#”后面为注释的内容,CMake的命令全部为大写
第2行指定生成的工程名为test_math
第4行指定头文件目录为include
第8行指定源文件目录为src,并将其赋值给环境变量DIR_SRCS
第10行设定环境变量TEST_MATH的值为环境变量DIR_SRCS的值,此处用于显示如何用环境变量对环境变量进行赋值
第14行将数学函数库赋值给环境变量LIBRARIES,当然,可以不用这个环境变量,而在后面直接使用该库名
第18行用于指定生成文件,将环境变量TEST_MATH目录下的所有文件编译生成../bin目录下的可执行文件bin
第20行指定../bin/bin执行时的链接库为环境变量LIBRARIES的值-libm.so
下面给出源文件
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
将CMakeLists.txt放在当前目录下,执行CMakeLists.txt
$> cmake .
$> make
即可生成可执行文件,在目录/bin下的bin文件,好了运行看其效果是否和所想一样。
- VS2015--win32工程配置的一些想法之cmake
- VS2015--win32工程配置的一些想法之cmake
- VS2015--win32工程配置的一些想法之Google Code Style中头文件的顺序
- VS2015--win32工程配置的一些想法之预处理器不起作用
- VS2015--win32工程配置的一些想法之VS2015编译的程序在其他机器上缺少msvcp120.dll
- VS2015--win32工程配置的一些想法之warning LNK4042: 对象被多次指定;已忽略多余的指定
- VS2015--win32工程配置的一些想法之在 Visual Studio 2015 中进行调试的同时分析性能
- VS2015--win32工程配置的一些想法之算法min/max与windows中的 min/max宏冲突
- VS2015--win32工程配置的一些想法之GdiplusTypes.h(470) : error C3861: 'min': identifier not found
- VS2015--win32工程配置的一些想法之警告:“BOOL”: 将值强制为布尔值“true”或“false”(性能警告)
- 使用CMake创建CEF3的vs2015的工程文件
- CMAKE之配置windows驱动工程---VS2008
- vs2015学习opencv330_64位的工程配置
- vs2015工程配置
- cmake配置工程
- Eigen3.3.3安装配置+VS2015+Cmake
- libigl +vs2015工程配置运行
- VS2015工程目录结构 + OpenCV环境配置 的最优解决方案
- 《C++ Primer Plus(第六版)》(18)(第十一章 使用类 笔记)
- 保护眼睛
- java虚拟机底层结构详解
- 2. JavaSE 面向对象1
- ROS学习笔记
- VS2015--win32工程配置的一些想法之cmake
- Java虚拟机的深入研究
- cdh5.7.1 +kerberos + livy server v0.2.0 安装测试步骤
- redis--乐观锁--粗粒度锁
- Windows下使用AndroidStudio+ReactNative开发Android应用
- oracle中PCTFREE, PCTUSED, INITRANS, MAXTRANX参数
- 利用contentEditable属性与execCommand方法开发简洁的文本编辑器
- 欢迎使用CSDN-markdown编辑器
- DOM(Document Object Model)