[转载]使用cmake编译开源库

第一次使用cmake是在刚接触VTK的时候,需要自己从源码编译出可供调用的VTK库文件。之后使用OpenCV再次用到了cmake,不过一直都是按着网上的教程一步步操作。用了几次之后才开始对其中的步骤有所理解,明白为什么要这么做。因为很多开源的库都需要进行类似的编译过程以适应不同的开发需求和开发环境,所以在此进行简单的总结,以备将来参考。

 

整个过程的基本思路如下:

1.下载开源库的源码。不管是下载的压缩包还是直接用SVN之类的工具,最终得到的是一个包含了很多文件和文件夹的源代码集合。一般来说这些文件是没法直接供编程时调用的。

2.使用Cmake配置库。主要目的是根据实际需要勾选或取消库的某一些特性,比如OpenCV库是否添加QT的支持,VTK的库是否生成Java的wrapping等。Configure的过程结束确认没有错误之后就可以Generate出来相应的工程文件。我们就是用这些工程文件去进行实际的编译。实际使用的编译器需要在Configure的第一步指定好,比如Windows系统下常用的Visual Studio编译器以及MinGW。

3.编译库。根据第二步操作里选择的编译器不同,第二步完成后生成的工程文件也就不一样。比如选择了Visual Studio的编译器,生成的工程文件目录下面就会有Visual Studio的项目文件,直接使用Visual Studio打开进行编译就可以了。如果选择了MinGW,生成的目录下面会有MinGW的makefile,可以在命令行窗口下使用mingw32-make命令进行编译(下图1),mingw32-make install命令进行安装(下图2)。

[转载]使用cmake编译开源库

[转载]使用cmake编译开源库

以上三步完成后整个编译过程就结束了。这时候在上面提到的工程目录下面就能够找到编译好的库文件了,包括头文件、dll文件等。如果使用了install命令,会生成一个install文件夹,install的过程会自动把所有开发要用到的库调用文件整合到这一个文件夹里,除此之外其他的文件这时候都可以删掉了。

 

需要注意的一些问题:

1.MinGW安装完成后要记得把其对应的bin目录添加到系统环境变量PATH里,否则系统会找不到gcc和g++编译器。

2.如果系统里同时安装了多个基于GNU的编译器(不确定这么叙述是不是准确),cmake的Configure也可能会报错。比如我的电脑里除了MinGW同时还安装了Yagarto来编译ARM程序的,cmake就会报错。卸载yagarto或者把环境变量里yagarto对应的路径去掉之后就可以解决问题了。

 

至于怎么使用这些库文件,不同的库以及使用不同的IDE操作略有不同,以后积累更多经验了再做详细记录

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值