CHOLMOD的编译用于VS的版本,借用Cygwin

CHOLMOD的编译用于VS的版本,借用Cygwin

 

Jingwenlai 2008-04-15

 

今天在windows下试出了CHOLMOD的编译,先是在Cygwin下编译成功。但是,如果想把Cygwin中编译的库能在windows下使用,则还需要在其Makefile中添加"-mno-cygwin"来使其使用mingw-32这个编译器,从而脱离对cygwin1.dll的依赖。这部分可以参照之前编译umfpack库的blog.

但是,这样编译后的库,拿到VS2005中用的时候,则出现一系列库不兼容的问题,后来逐个库添加,编译,最后锁定错误在METIS上。最初没有找到解决方法,把网上现有的编译成功的库加进来也出错。然后突然想起来,原来我在Tools->Options中以前添加Taucs库的时候已经添加过包含有libmetis.obj的目录,因此,将网上下载的别人已经编译好的metis库改名,再在自己的测试工程中把该链接库的名字改为自己改过后的名字,果然错误少了很多。但是发现还有几个依赖库,如libc.lib没有找到,依照网上的方法,在Linker->Ignore libraries中将libc.lib忽略,仍然有一个错误:找不到_iob.

无奈,只有自己重新编译Metis库,建个工程,将其源代码导进来,对头文件的写法进行修改,然后编译,成功。但是,放到测试工程中试的时候仍然出错,提示没有找到_srand.后来检查metis源代码,发现是其用一个

#ifndef __VC__

这个开关来屏蔽掉了,后来在defs.h文件中加入

#define __VC__

之后编译,把编译出的文件,加入到测试工程中,这次可以顺利通过。

然后,改一下编译的选项。分别编译出适用于/MT,/MD的情况下使用的Metis.

经过测试,现在CHOLMOD库可以在/MT,/MTD,/MD,/MDD这四种编译模式下使用了。

 

补充:2010-6-10

关于cholmod的使用,可以参见《CHOLMOD User’s Guide》。

其实现在觉得*NIX下的开发环境可能更方便,因为现在大部分的库基本上都提供了源码,而且数值求解的库好多是从原来UNIX下传承下来的,但是现在可以把这些库编译到windows下来用,也算是提供了跨平台的选项。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值