1 所需工具:
- 一个c++编译器(比如Visual c++ 2010)
- meshlab的源代码。可到https://sourceforge.net/projects/meshlab/files/meshlab/下载相应的版本;创建一个目录(比如~/devel),将meshlab的源代码压缩包,直接解压到该目录。
- qt库。可到ftp://ftp.qt.nokia.com/qt/source/下载相应的版本,同时要注意平台和编译环境的选择,比如qt-everywhere-opensource-src-4.8.0.zip,只有源代码,需要重新编译qt库;另外,qt-win-opensource-4.8.0-vs2010.exe含有已编译好的qt库,直接安装即可。
2 qt运行环境配置
假设qt解压或安装的目录为 D:\Qt\4.8.0
- 添加环境变量 QTDIR = D:\Qt\4.8.0;QMAKESPEC = win32-msvc2010;PATH = %PATH%; %QTDIR%\bin;
- 若是编译qt库源代码,将qt-everywhere-opensource-src-4.8.0.zip解压后,打开Visual studio Command prompt(2010),定位到解压目录,在控制台下输入命令:configure -platform win32-msvc2010,做出相应的选择后,输入命令:nmake 进行编译。估计需要等待4-5个小时。
- 若是安装的qt库,打开Visual studio Command prompt(2010),是已经编译好的二进制版本,可以直接使用。若需要重新编译的话,定位到安装目录,在控制台下输入命令:configure -platform win32-msvc2010,做出相应的选择即可。无需等待。对于使用opengl的情况,可配置configure -opensource -debug-and-release -platform win32-msvc2010 -graphicssystem opengl -opengl desktop.
3 外部依赖项:
所需要的依赖项,已经包含在~/devel/meshlab/src/external中,目录下的external.pro为外部依赖项的工程文件。
- 将external.pro中包含的各个子项目文件打开(比如lib3ds.pro),将含有win32-msvc2005或win32-msvc2008,而没有win32-msvc2010的行下,增加相似的一行,并将win32-msvc2005或win32-msvc2008改为win32-msvc2010。比如
win32-msvc2008: DESTDIR = ../../lib/win32-msvc2008 下增加一行
win32-msvc2010: DESTDIR = ../../lib/win32-msvc2010
需要上述操作,是因为目前的meshlab库没有及时更新,以支持visual studio 2010编译环境。
- 打开Visual studio Command prompt(2010),在控制台下输入命令:qmake -tp vc -recursive external.pro,生成Visual c++ 2010对应的项目和解决方案文件external.sln。
- Visual c++ 2010打开文件external.sln,编译整个解决方案,会在目录~/devel/meshlab/src/external/lib/win32-msvc2010下生成各个外部依赖项的lib文件。
4 编译meshlab
meshlab库的项目文件位于目录~/devel/meshlab/src下的meshlab_full.pro或meshlab_mini.pro。
- 按步骤3类似地处理meshlab_full.pro或meshlab_mini.pro中包含的各个子项目文件(*.pro)。
- 在Visual studio Command prompt(2010控制台下输入命令:qmake -tp vc -recursive meshlab_full.pro