visualstudio编译c语言库,使用 Visual Studio 编译 GSL 科学计算库

GSL是一个GNU支持的科学计算库,提供了很丰富的数值计算方法。本文介绍了GSL库在Windows环境下使用VisualStudio进行编译构建的过程。

a88600d40793b02617ba4045fda3451a.png

GSL 的项目主页提供的说明来看,GSL支持如下的科学计算:

Complex Numbers

Roots of Polynomials

Special Functions

Vectors and Matrices

Permutations

Sorting

BLAS Support

Linear Algebra

Eigensystems

Fast Fourier Transforms

Quadrature

Random Numbers

Quasi-Random Sequences

Random Distributions

Statistics

Histograms

N-Tuples

Monte Carlo Integration

Simulated Annealing

Differential Equations

Interpolation

Numerical Differentiation

Chebyshev Approximation

Series Acceleration

Discrete Hankel Transforms

Root-Finding

Minimization

Least-Squares Fitting

Physical Constants

IEEE Floating-Point

Discrete Wavelet Transforms

Basis splines

GSL的Linux下的配置很简单,照着它的INSTALL文件一步一步来就可以了。CMAKE大法HAO!

1

2

3

4./configure

make

make install

make clean

同样的,GSL也可以在Windows环境下配置,下面记录了如何在Windows环境下使用 Visual Studio 和 CMakeGUI 编译测试GSL。

使用CMAKE编译成.SLN文件

打开CMAKEGUI,将输入代码路径选为GSL源代码地址,输出路径设为自己想要的输出路径。点击 “Configure“,选择Visual Studio2013为编译器,点击Finish后会进行必要的配置。然后将表格里面的选项都打上勾,再次点击”Configure“,等待完成之后点击”Generate“。完成之后,就可以在输出路径下看到GSL.sln文件了。

使用Visual Studio生成解决方案

使用 Visual Studio 打开刚才生成的.SLN文件,分别在Debug和Release模式下生成解决方案,等待完成即可。

当完成后,你应该可以在路径下看到这样一张图,我们主要关注的文件夹是\bin,\gsl,\Debug和\Release。

加入环境变量

修改环境变量的Path,将\GSL_Build_Path\bin\Debug加入,这主要是为了\Debug文件夹下面的gsl.dll文件。如果不进行这一步的话,一会虽然可以编译,但是却不能运行。

这里顺便注释一句,当使用第三方库的时候,如果需要动态链接库的支持,其中一种方法就是将DLL文件的路径加入到Path中去。

建立Visual Studio属性表

Visual Studio可以通过建立工程属性表的方法来配置工程选项,一个OpenCV的例子可以参见Yuanbo She的这篇博文 Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)。

配置文件中主要是包含文件和静态链接库LIB的路径设置。下面把我的贴出来,只需要根据GSL的生成路径做相应修改即可。注意我的属性表中保留了OpenCV的内容,如果不需要的话,尽可以删掉。上面的博文对这张属性表如何配置讲得很清楚,有问题可以去参考。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19<?xml version="1.0" encoding="utf-8"?>

$(OPENCV249)\include;E:\GSLCode\gsl-build\;$(IncludePath)

$(OPENCV249)\x86\vc12\lib;E:\GSLCode\gsl-build\Debug;$(LibraryPath)

$(OPENCV249)\x64\vc12\lib;E:\GSLCode\gsl-build\Debug;$(LibraryPath)

opencv_calib3d249d.lib;opencv_contrib249d.lib;opencv_core249d.lib;opencv_features2d249d.lib;opencv_flann249d.lib;opencv_gpu249d.lib;opencv_highgui249d.lib;opencv_imgproc249d.lib;opencv_legacy249d.lib;opencv_ml249d.lib;opencv_nonfree249d.lib;opencv_objdetect249d.lib;opencv_ocl249d.lib;opencv_photo249d.lib;opencv_stitching249d.lib;opencv_superres249d.lib;opencv_ts249d.lib;opencv_video249d.lib;opencv_videostab249d.lib;gsl.lib;gslcblas.lib;%(AdditionalDependencies)

opencv_calib3d249.lib;opencv_contrib249.lib;opencv_core249.lib;opencv_features2d249.lib;opencv_flann249.lib;opencv_gpu249.lib;opencv_highgui249.lib;opencv_imgproc249.lib;opencv_legacy249.lib;opencv_ml249.lib;opencv_nonfree249.lib;opencv_objdetect249.lib;opencv_ocl249.lib;opencv_photo249.lib;opencv_stitching249.lib;opencv_superres249.lib;opencv_ts249.lib;opencv_video249.lib;opencv_videostab249.lib;gsl.lib;gslcblas.lib;%(AdditionalDependencies)

在以后建立Visual Studio工程的时候,在属性窗口直接添加现有属性表就可以了!

测试

在项目网站的教程上直接找到一段代码,进行测试,输出贝塞尔函数的值。

1

2

3

4

5

6

7

8

9#include

#include

int main(void)

{

double x = 5.0;

double y = gsl_sf_bessel_J0(x);

printf("J0(%g) = %.18e\n", x, y);

return 0;

}

控制台输出正确:

uXhVvwS.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值