| Profil de Libin绿色家园PhotosBlogListes | Aide |
|
29 mai 编译meshlab 1.21全接触1. 编译环境: a. visual studio 2008 perfessional edition,因为已经安装了sp1,所以不确定它会对编译有何影响。 b. QT opensource v4.5。0,只编译了其动态库文件(静态库无法编译完全)。 执行“Visual Studio 2008 命令提示 ”控制台工具后,在QT根目录执行QT编译环境设置脚本,该脚本同时为meshlab生成vc 项目工程的环境。一下为该脚本原文: @echo off set cur_dir=%cd%\ set QTDIR=%cur_dir% set QMAKESPEC=win32-msvc2008 set ConfPara=-debug-and-release -opensource -fast -no-dbus -no-webkit
set PATH=%QTDIR%/bin;%PATH% set INCLUDE=%MINGWDIR%/include;%QTDIR%/include;%QWTDIR%/src;%LOG4QTDIR%/src;%INCLUDE% set LIB=%MINGWDIR%/lib;%QTDIR%/lib;%QWTDIR%/lib;%LIB%
echo *********************************************************************** echo Created By gmail:bygreencn.gmail.com echo Includes : QT 4.5.0、Visual Studio 2008 echo QT : %QTDIR% echo QMAKESPEC: %QMAKESPEC% echo ConfPara: %ConfPara% echo *********************************************************************** @REM pause @REM nmake clean @REM nmake confclean @REM configure.exe %ConfPara%
@REM pause @REM echo build it now? @REM nmake clean cmd /k
c.下载MeshLab's source code version 1.2.1,我下载的是All Inclusive package 2. 生成所需的VC项目工程文件 a. 上一步的控制台,进入.\ meshlab\src\external,执行qmake -tp vc -recursive external.pro b. 上一步的控制台,进入.\ meshlab\src,执行qmake -tp vc -recursive meshlabv12.pro 3. 编译meshlab a. 首先编译external library。用vc打开.\ meshlab\src\external\external.sln,进入配置管理器,选择编译debug或release版本,在选择生成解决方案,等待编译全部通过,它会生成三个库文件。bz.lib,3ds.lib和muparser.lib,我发现3ds.lib的生成有些问题,会使得meshlab在LINK时无法正确连接函数,我在lib3ds\type.h做了一下修改: //#ifdef _MSC_VER //#ifdef LIB3DS_EXPORTS //#define LIB3DSAPI __declspec(dllexport) //#else //#define LIB3DSAPI __declspec(dllimport) //#endif //#else #define LIB3DSAPI //#endif b.编译meshlab:meshlab所有的plugin工程的设置有些问题,这些工程都制定输出为动态库,但是输出文件却指定为输出为*****.lib,这导致所有的plugins的工程都失败。我的做法是把指定输出为*****.dll,这里应该必须为dll,因为New的对话框中会根据plugins文件夹下的内容动态生成,因为这些应该也是动态加载的,因为静态库是不行的了。 1). 需要为io_lib指定其需要的lib3ds.lib(external library) 2). 需要为io_epoch指定其需要的bz2.lib和头文件的位置(external library) 如果哪个plugin工程出现类似这个错误: 1>Project : error PRJ0019: 某个工具从以下位置返回了错误代码: "MOC v3dImportDialog.h" 1>项目: warning PRJ0018 : 未找到下列环境变量: 1>$(QTDIR) 只需要用生成VC项目的那个控制台环境进入相应的plugin目录,执行qmake -tp vc -recursive xxxxxx.pro来重新生成该工程即可。
编译整个项目,大概需要十多分钟。然后就可以进入.\meshlab\src\meshlab\debug或者.\meshlab\src\meshlab\release执行meshlab.exe;记得要把QT的DLL库文件拷贝到这个目录或者将QT的DLL库所在目录加入到系统PATH中啊。
RétroliensL'URL de rétrolien de ce billet est : http://greensui.spaces.live.com/blog/cns!57ACA2C80B34A3DA!473.trak Blogs Web qui font référence à ce billet
|
|
|