王乐辉 【磨刀石】专栏

步骤一:

1)解压缩 qt-win-opensource-src-4.5.2.zip 到 G:/qt-win-4.5.2 — 不再包含其他子根目录!!!

1.1 设置变量 MAKESPEC = win32-msvc2008

1.2 设置变量 QTDIR = G:/qt-win-4.5.2/

1.3 添加路径 G:/qt-win-4.5.2/bin

*提个醒* Qt编译后很胖,准备10 G磁盘空间先。

2)打开VS2008 控制台, 敲入: configure -platform win32-msvc2008 -vcproj

******等啊,等啊*******,

时间长短,视机器卖力程度而定,多则1-2小时,少则10多分钟

3)configure完成,然后输入nmake回车, 可能会有错,莫慌:

删除

qt/src/3rdparty/webkit/WebCore/tmp/moc/debug_shared/mocinclude.tmp

qt/src/3rdparty/webkit/WebCore/tmp/moc/release_shared/mocinclude.tmp

然后再nmake即可成功编译

******等啊,等啊*******

******等啊,等啊*******

******等啊,等啊*******

******等啊,等啊*******

******等啊,等啊*******

******等啊,等啊*******

时间很长,像我这 双核 2.0G/2G内存 的机器,满头大汗,累得吱吱叫唤,还要 2-3个小时 囧

4)nmake -clean 清理中间文件, 进行Qt Library 瘦身

——————————————

————中场休息———————

——————————————

至此Qt库已经就绪,接下来收拾 Coin

步骤二:

1)将 Coin-2.5.0-bin-msvc8.zip 释放到 G:/Coin-2.5

2)设置变量 COINDIR == G:/Coin-2.5

3)添加路径 G:/Coin-2.5/Bin, 这样IDE就能找到Coin库了

——————————————

————中场休息———————

——————————————

至此Coin 3D库已经就绪,接下来收拾 SoQt

步骤三:

1)将 SoQt-1.4.1.tar.gz 释放到 G:/SoQt-1.4.1

2)进入 G:/SoQt-1.4.1/build/msvc8, 打开工程 soqt1.sln (VS2008 会提示)

挨个编译一遍,生成如下结果:

soqt1d.dll

soqt1.dll

soqt1d.lib

soqt1.lib

3)将这些宝贝拷贝到 文件夹 G:/Coin-2.5/bin 下

4)双击 文件夹 G:/SoQt-1.4.1/build/msvc8 下的 install-headers.bat 批处理,

检查 一下 G:/Coin-2.5/include 下是否存在 Inventor,Soxxx等文件

如果不存在请仔细检查 RP o(╯□╰)o

——————————————

————中场休息———————

——————————————

至此SoQt库已经就绪,接下来收拾 CLAPACK

步骤四:

1)将CLAPACK-3.1.1-VisualStudio.zip 解压到 G:/CLAPACK-3.1.1

2)设置 CLAPACKDIR 变量 G:/CLAPACK-3.1.1

3)打开 G:/CLAPACK-3.1.1/clapack.sln,工程,

稀里哗啦,一通编译啊……

******等啊,等啊*******

******等啊,等啊*******

【编译过程中,有些注意事项】

所用选择都是,重新生成,这一点很重要!防止不同VS版本的库混淆,造成最终的clapackd.lib败坏。

首先编译F2CLIBS,用于将fortran转换为c语言。

选择libf2c子项目。直接生成之。编译过程中可能会有一些warning,不要理会他们。

编译成功后,输出文件是libf2cd.lib。

这里的d就是debug模式,如果是release模式就是libf2cd.lib。

输出文件默认路径是/LIB文件夹。注意,/LIB/Win32下已经有一些lib了。大家最好把他们都先删除了,,以免新旧文件混淆。

接着编译tmglib。这是一个矩阵库。

这个库在TESTING/MATGEN里面。选择他生成就好了。

输出文件还是在/LIB里面。文件名是tmglibd.lib。

然后是编译blas,选择项目blas, 编译之。

输出文件BLASd.lib。

最后是编译CLAPACK,生成clapackd.lib.

【release和debug模式都来一遍,以备用】

4)Graspit!针对 CLAPACK,有些小的工程配置文件的调整,且听下回分解

///////////////////////////////////////////////////////////////////////////////////////////

至此CLAPACK库已经就绪,接下来收拾 终极BOSS —>Graspit!

步骤五:

1)将Graspit-2-1-0-src.zip解压到 G:/Graspit

2)设置变量 GRASPIT = G:/Graspit

3)打开 G:/Graspit/qhull/windows/qhull.sln

编译 QHull

4)修改文件 G:/Graspit/graspit.pro 17 行:

LAPACK = clapack,由此指示使用何种类型的LAPACK

5)打开VS2008控制台 ,敲入

G:/

cd G:/Graspit

qmake -t vcapp -o graspit.vcproj graspit.pro

OK,生成VS2008的工程文件 graspit.vcproj

6)打开 graspit.vcproj

在附属库中添加 libg2c.lib 和 gcc.lib 【右键,工程属性】

这两个库来自 MinGW 下 的库 libg2c.a 和 gcc.a, 改一下缀就OK了

没动这个手脚, CLAPACK会 bababababababababa 报错:

错误2error LNK2019: 无法解析的外部符号 _s_cat,该符号在函数 _dgesvd_ 中被引用clapack.libgraspit

错误6error LNK2019: 无法解析的外部符号 _s_cmp,该符号在函数 _ilaenv_ 中被引用clapack.libgraspit

错误7error LNK2019: 无法解析的外部符号 _s_copy,该符号在函数 _ilaenv_ 中被引用clapack.libgraspit

错误8error LNK2019: 无法解析的外部符号 _d_sign,该符号在函数 _dlasv2_ 中被引用clapack.libgraspit

通过 右键->属性->连接器->输入->忽略特定库 ,填入LIBCMT.lib

解决库接口重复冲突问题

稀里哗啦,一通编译啊……

******等啊,等啊*******

******等啊,等啊*******

编译成功:), 运行!

【合唱:】解放区的天是明朗的天,解放区的人民好喜欢~~~~~~~

搞几张截图:

融入银河,就安谧地和明月为伴照亮长天;没入草莽,

王乐辉 【磨刀石】专栏

相关文章:

你感兴趣的文章:

标签云: