由于TAUCS库的依赖库都是在-MT下编译的,所以如果是-MT下的应用可以参考前面我的编译过程。这里将讨论在/Md和/MDd 运行时库中的应用。
参考链接:http://matrixprogramming.com/2009/03/taucs-md。事实上链接中阐述的是很全面的,奈何我对Cygwin和gcc的陌生,平白为我理解埋下了隐患。
这里我就不陈述所以然了,如果有兴趣可以看原帖。具体的方法如下:(以下命令都是在预安装的VS 命令提示中完成)
1,如果已经编译了-MT下的 TAUCS库
make clean
如果没有编译 首先,配置VS环境变量,在common7/Tools/vsvars32.bat; 其次用cd.. 退到TACUS文件中 运行configure.bat生成makefile文件
2,更改 config/win32.mk 中FLAGS and LDFLAGS 让TAUCS在-MD下编译,具体如下:
CFLAGS = /nologo /O2 /W3 /D "WIN32" /MD
LDFLAGS = /nologo /MD /F64000000
3,第二步的编译会出现一些错误,主要是重复定义的问题但是可以骗过编译器生成MD下的libtaucs.lib
in lib/win32,然而由于该库的支持lib依然来至于-MT,所以是不够的。下载在-MD下编译好的ATLAS,
http://matrixprogramming.com/files/bin/atlas-3.6-win.tar.gz。然后ATLAS中的A文文件重命名,并将它们拷贝到新建的文件夹external/new中,其中具体的文件有liblapack.lib
libf77blas.lib
, libcblas.lib
and libatlas.lib
.
4,然后还应把libgcc.lib和libg2c.lib文件重命名之后拷入new文件中。它们都来至于cygwin。但是当前cygwin的工具包中已经没有gcc.3.x.x的工具了,你可以在网上下载。
5,最后我们还应重编译libmetis.lib 按照http://matrixprogramming.com/2008/05/metis,并将此lib也放入new文件中。
综上,就完成了TAUCS库在-MD下的编译,如果你还有其他的要求只需要编译对应的lib就好了。我只是讲述了方法,如果想知道其所以然建议去原帖细细研究,虽然过程是痛苦的,不过是值得的。