最近,编译了一把gdal源码,由于依赖度很多(虽然大部分非必选,但还是尽量都编译了一遍),用到的工具也很多,现在整理一下。这里只介绍如何使用这些工具完成三分库的编译,对于使用这些工具来管理项目和代码还未做研究。
1.CMAKE:
软件下载:CMake - Upgrade Your Software Build System
现在绝大部分三方库都提供了cmake编译方式,如果下载的源码中有CMakelist.txt就支持。此工具使用于Windows和Linux平台(有对应的版本),使用方法基本一致。
界面操作:
打开cmake-gui.exe界面工具:
安装如上图所标的顺序依次选择源码目录;
选择构建目录(一般在源码目录下新建一个build目录);
然后点击构建(Configure);
选择编译器,windows一般选择vs对应版本,Linux下一般选择GNU make;
完成后会出现一些编译选项,如果有依赖库未找到需手动指定lib和头文件目录;
最好选择一个输出目录(非c盘目录),因为默认是生成到系统盘下,后面编译安装如果不是以命令行方式启动vs可能会出现权限问题;
指定完成后点击Generate,生成对应工程文件(windows : sln文件,Linux生成 makefile);
如果指定了输出目录可直接点击打开项目,如果是默认的需要手动以管理员身份打开项目;
选择build-all编译,编译完成后编译Install;
命令行使用:
cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_INSTALL_PREFIX="D:\zlib-1.3" ..
如果需要找依赖,可简单了解find_package,可在cmakelist.txt中添加如下:
set(libicd_DIR "D:/libicd/cmake")
find_package(libicd CONFIG REQUIRED)
2.NMAKE:
nmake是vs自带的编译工具,一般只能在Windows下使用,如果源码中有Makefile.msc文件或者Makefile.vc文件可使用nmake编译:
nmake /f makefile64.vc
nmake /f makefile64.vc install
3.GNU Makefile:
一般用于Linux下源码编译,使用方法简单:
./configure
make
make install
4.Cygwin:
有些库没有提供可直接在Windows下编译的方式,这时可借助Cywin工具,打开先设置编译环境(需要哪些工具和依赖库),然后它其实就是一个可以访问Windows目录的Linux虚拟机,可以用Linux下的编译方式编译生成dll动态库。
但是对应生成的静态库是.a文件,与Windows下常用的lib静态库不同,导致被依赖时无法链接。当然也有转换的方法,但大多都比较繁琐,所以这种工具并不推荐(鉴于我本人对其了解不足的情况下)。
5.MinGW:
MinGW就是GCC 的 Windows 版本 。
使用方法在后续遇到实际情况时再介绍。
6.vs
windows下最常用的工具
7.qt
qt中带有qmake编译工具,也可跨平台编译,前提是得有工程文件(.pro/.pri)
8.vcpkg
在Windows下的,需要联网的自动编译工具,前提是有对应的三方库和版本,可自动下载依赖的库和源码自动完成编译,非常方便。
总结
Linux下直接使用GNU MAKE即可;
Windows下优先使用cmake,如果没有根据实际情况和条件选择合适的工具。
后续将以gdal为例编译其所有依赖库。