CMake与跨平台编译

来源:互联网 发布:python api文档在哪有 编辑:程序博客网 时间:2024/04/20 06:53
目前 最新版本已经到了cmake-2.8.5,有兴趣的可以到官方看看。 

本篇推荐一个跨平台(cross-plateform)的Make工具 - CMake.

CMake 的官方下载地址: http://www.cmake.org/cmake/resources/software.html

中文介绍: http://www.qtchina.net/cmake-cn/About.html

CMake 中文一个使用教程: http://techbase.kde.org/Development/Tutorials/CMake_(zh_CN)

一篇不错的CMake介绍: http://blog.csdn.net/Bowater/archive/2008/05/18/2456732.aspx

我们先去官方网站下载CMake的windows版本。提供源代码和编译好的版本,还有安装版本。

为了方便,我们可以下载安装版,这样可以省去配置环境变量的过程。目前最新版本2.6.3

安装版: http://www.cmake.org/files/v2.6/cmake-2.6.3-win32-x86.exe

编译版: http://www.cmake.org/files/v2.6/cmake-2.6.3-win32-x86.zip

源码版: http://www.cmake.org/files/v2.6/cmake-2.6.3.zip

上面三个都是windows的最新版。

(PS: cygwin下也有cmake,可以直接安装使用)

CMake的安装

Windows上安装很简单,安装版的话一路next就好。编译版的话,解压后添加bin目录到环境目录即可。

CMake的使用

CMake支持跨平台的Makefile制作。支持多种编译工具,IDE等的工程项目。

如: windows上的VC6, VC7, VC8, VC9的工程项目创建。可以制作多种格式的Makefile如

nmake Makefile, MinGW Makefile,Code::Blocks Makefile,Eclipse Makefile, Unix Makefile ect.

也就是说,只要按CMake制作了工程,就可以编译成多种平台上的编译文件,可谓非常之方便。

让我们看一个制作的实例。源码版里有一个Example文件夹,我们就用这个例子。

首先打开Example文件夹,熟悉一下这个工程里的文件结构。

里面有两个文件夹Demo和Hello。

Hello里是一个项目,编译生成一个lib库,里面定义了一个类函数。

Demo里是另一个项目,调用这个lib库的函数。

注意每个文件夹里都有一个CMakeLists.txt文件。这个文件很重要,就是CMake用来了解项目结构用的文件。关于这个文件的编写格式和语法也比较简单,可以参考软件的说明档。

我们直接测试一下看看。

调用CMake可以有两种模式,一种是命令行模式,另一种是GUI模式。

cmake.exe就调用命令行。

cmake-gui.exe 就是GUI模式程序。

我们运行GUI. 填入如下信息:

where is source code: 就是填入我们的源代码位置。我们选择Example这个文件夹。

where is build binaries: 就是编译后文件的输出地址。也包括生成的Makefile和工程文件的输出地址。自己随便指定一个位置。

其他的都可以使用默认设定。

按configure进行配置, 弹出对话框选择生成项目或makefile类型。

我们先测试一下VC6工程吧,选择VC6,然后确定 ( 注意,你电脑里必须安装了VC6,且环境变量里有VC6的相关路径。只要VC6正常安装了,这些都有。)

确定后,程序会自动检测VC6并生成CMake的配置信息。

接着,我们点击generate就可以生成VC6的工程文件了。

现在,我们到指定的 build binaries文件夹里,里面就有VC6的工程文件HELLO.dsw

大家可以试试打开他,编译程序,生成HELLO.lib和helloDemo.exe

现在,我们试试其他的工程格式。

build binaries选择另一个地址。File - Delete cache 删除原来的设置。

按configure 开始一个新的配置,选VC9项目。然后默认确定。只要装了VC9(即VS2008)就会配置成功。

再按generate就生成了VC9的工程文件。

进入build binaries文件夹就会看到HELLO.sln 这个生成的VC9版工程文件。

大家可以用VC9打开,编译一下看看。

再介绍一下Makefile的形式。我们先试试NMake Makefile。这时VC模式下的Makefile

操作步骤和前面差不多。按configure选择项目类型时,选NMake makefile. 然后generate生成Makefile工程.

打开工程目录里就有一个Makefile文件,cmd下输入nmake就可以编译项目了。

我们也可以试试Unix Makefile。 configure时选Unix Makefile,然后generate.

拿到Unix下Make就行了。我们可以试试在cygwin下make,也很顺利。

 

转自: http://hi.baidu.com/kaien_space/blog/item/06667199bec614006f068c77.html

原创粉丝点击