vs2010使用igraph

在vs2010下编译配置igraph,遇到了一些问题,记录如下。

 

step 1、编译

由于igraph源码是linux编写的,尽管官方也提供了对应windows的sln工程,但是毕竟不是原生环境,有条件的同学建议还是在linux下工作。igraph-C下载地址在此,本文igraph版本为0.7.1。

使用vs2010打开,提示升级(官方提供sln工程的vs版本<2010,好像是v7.1),升级后点击生成,出现问题:

作者在git上说这是igraph的MSVC版本的bug,需要在“属性——C/C++——命令行”设置中增加一句编译命令“/DPRPACK_IGRAPH_SUPPORT=1 ”,然后重新生成即可。(吐槽,这是2013年的issue,至今不修复,太真实了)。

 

step 2、使用

sln工程生成的结果,就是对源码编译的结果,也就是igraph.lib。官方在提供源码的sln工程的同时,也给了一个igraphtest工程,可是我这里用vs2010打开报错无法升级,因此换个方法测试。

我创建了一个vs2010下的c++控制台程序,并开始传统艺能,对“属性——vc++目录”下的“包含目录”和“库目录”分别添加存放igraph.h和igraph.lib的路径,对应刚刚编译的工程,就是include目录和Debug目录;再对“属性——链接器——输入”下的“附加依赖项”添加“igraph.lib”。在控制台cpp文件中, 将官方测试工程的cpp代码贴到响应位置(即添加引用和主函数语句),运行,又报错:

 

google得知,这是运行库类型设置错了。源码工程是/MT和/MTd的,而我新创建的工程是/MD的。也就是说,igraph编译的lib是静态库,也就不能当做动态库使用。在“属性——C/C++——代码生成——运行库”即可指定。重新生成后,只剩一个错误了。

根据博客,这个问题有多种可能性,在我这里使用博文中的第一步就可解决了。其原理.....不求甚解了这里。

 

由此即可顺利使用igraph库了。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值