VS2019编译GSL

VS2019 编译GSL

下载GSL:https://github.com/BrianGladman/gsl,此仓库带有用于编译的VS解决方案。

解压后,在 build.vc 目录下有两个解决方案:

  • gsl.dll.sln 用于编译生成动态库
  • gsl.lib.sln 用于编译生成静态库

请先阅读 build.vc 目录下的说明文档 gsl.readme.txt

以编译静态库为例,介绍编译过程:
使用 Visual Studio 打开 gsl.lib.sln,可以看到四个Solution
VS2019编译GSL_第1张图片
在处理之前,需要修改solution的属性表(选中solution>鼠标右键 >Properties),修改 Platform Toolset (原仓库默认v143,但是我只装了v142,所以需要进行修改)
VS2019编译GSL_第2张图片
根据需要,修改四个solution的Platform Toolset.

参考gsl.readme.txt ,我们需要先生成 gslhdrs 解决方案。这个解决方案的作用是拷贝所有头文件到一个子文件夹 gsl,在生成之前,需要添加当前目录(即加压后的目录)到 include 搜索路径中:
VS2019编译GSL_第3张图片
点击 build > build gslhdrs,等待编译成功,可以在解压目录的 lib 中看到编译结果。

之后,选择 gsllibcblaslib 其中一个进行build(未选中的一个会自动生成),之后生产的静态库输出路径在解压目录下的 lib 目录下:
VS2019编译GSL_第4张图片

静态编译有用的是 cblas.lib, cblas.pdb, gsl.lib, gsl.pdb.

类似的操作处理解决方案 gsl.dll.sln,输出动态库在解压目录的 dll 文件夹下:
VS2019编译GSL_第5张图片

动态编译有用的是 cblas.lib, cblas.pdb, cblas.dll, gsl.lib, gsl.pdb. gsl.dll.

VS2019配置GSL

编译完成后,对生成的库进行整理:

└── gsl271
    ├── dll  解压文件下的 dll
    ├── lib  解压文件下的 lib
    └── include
		└── gsl 解压文件下的 gsl

在解决方案的属性表,添加 include 搜索路径和 library 搜索路径:
VS2019编译GSL_第6张图片
添加依赖库:Linker>Input>Additional Dependencies
VS2019编译GSL_第7张图片
如果使用动态库,需要在设置运行环境:Debugging/Environment,添加 PATH=dll所在的路径
VS2019编译GSL_第8张图片
测试代码

#include 
#include 

int main() {
    double x = 1.23;
    double result = gsl_pow_2(x);

    printf("The square of %.2f is %.2f\n", x, result);

    return 0;
}

你可能感兴趣的:(c++)