前言
gsl(GNU Scientific Library)是一个强大的数学运算库,涉及到复数的向量和矩阵等,开源。是现在比较主流的开源库,文档也比较详细。本文主要是以开发使用的角度来简单介绍这个开源库。
参考资料
官方网站和文档如下
GSL - GNU Scientific Library - GNU Project - Free Software Foundation
GNU Scientific Library — GSL 2.7 documentation
代码下载和安装
- 下载
- 编译安装
- ./configure CFLAGS="-g -O0" // 配置CFALGS 添加debug,方便gdb单步
- make -j4 // 编译
- sudo make install // 安装,默认会安装到/usr/local/lib 目录下
调试
- 编写测试代码
#include <stdio.h>
#include <gsl/gsl_blas.h>
#include <gsl/gsl_linalg.h>
int main(void) {
const unsigned int N = 2;
const unsigned int M = 3;
gsl_matrix *A = gsl_matrix_alloc(N, M);
gsl_matrix_set(A, 0, 0, 1.);
gsl_matrix_free(A);
return 0;
}
- 编译测试代码
- gcc -o testmatrix -g test_gsl.c -L/usr/local/lib -lgsl -lgslcblas
- ldd testmatrix 查看编译生成的bin是否链接到指定的库
- 注意事项
因为/usr/local/lib可能不是系统默认的动态库搜索路径,如果上面ldd查看出来的库不是我们编译安装的,那么你需要通过添加/usr/local/lib这个路径到/etc/ld.so.conf并通过命令sudo ldconfig来更新生效
- gdb调试
- gdb testmatrix
- eclipse 参考博文 Eclipse单步调试技巧_musiclvme的专栏-优快云博客
gsl基础矩阵介绍
- gsl_matrix
- gsl_matrix 内存布局图