32bitwin7,vs2010下配置CSparse

32bitwin7,vs2010下配置CSparse

  (2011-11-14 20:04:57)
标签: 

杂谈


    首先,下载csparse.c和csparse.h两个文件。
    下载网址:http://people.sc.fsu.edu.sixxs.org/~jburkardt/c_src/csparse/csparse.html

    其实,如果想要在vs2010的C++工程中使用csparse库,可以直接将
csparse.h & csparse.c添加到工程中;但是,因为是在C++工程中使用
C库,所以在引用csparse.h的时候,需要加上extern "C",即:
extern "C" {
    #include "csparse.h"
};
   
 否则,在使用csparse库函数时会编译出错。(unresolved external symbol)
    文章
http://http://blog.sina.com.cn/s/blog_4513dde60100q5rd.html中的提示是:
    一、csparse.h中使用了FILE,却没有包含stdio.h,所以在包含csparse.h之前一定先要包含stdio.h,不然编译会通不过的;二、csparse.h中没有使用#ifdef __cplusplus,所以直接在C++代码中用可能会有问题,最好自己在csparse.h中加上。
    关于#ifdef __cplusplus,参见
http://http://www.cnblogs.com/stonecrazyking/archive/2006/09/23/512552.html

    当然,直接添加.h & .c的作法比较麻烦,每次需要使用时都需要把.h & .c放到对应目录下添加一次;实际上,可以把.h & .c编译成.dll或.lib,每次调用即可。
    因为下载csparse.c & csparse.h网站提供的用来编译source code的csparse.sh只能在linux系统中使用,因此要在win7下的vs2010中使用csparse,需要使用其它方法编译源文件。
    在vs2010中新建一个win32 console application工程,(为简便起见,可以去掉
预编译头文件,即在application settings中的additional options中,勾选
empty project并去掉precompiled header);同时,为了编译出dll,需要将
工程选项的application type从默认的console application改成DLL
    之后在新建好的工程中在Release模式下Build工程,即可在Release文件夹
中找到对应的dll。
    为了编译出.lib,可以打开上述工程的属性窗口,在Configuration Properties -> General -> Configuration Type中选择Static library(.lib)(之前是Dynamic library(.dll));
然后同样在Release模式下编译,即可得到对应的lib。(编译出得.lib的文件名是工程名,因此为了便于理解,最好将工程命名为csparse,得到的即为csparse.lib)。

    将csparse.h,csparse.c,csparse.lib都放到一个固定的目录下(这里设为C:\CSparse)。
    之后,对一个要使用CSparse的工程,修改其工程属性:在configuration properties->VC++directories->include directories中加入
C:\CSparse
同样在...->VC++directories->library directories中加入
C:\CSparse;并在工程属性的Linker->Input->Additional Dependencies中加入csparse.lib;最后在代码中加入:
extern "C" {
    #include "csparse.h"
};
   
 即可使用CSparse库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值