从http://www.gnu.org/software/gsl/上下载, 按照提示安装之后,一切没有问题, 但是把manual中给出的例子拿来算, 却总不能编译成功. 错误信息为头文件中定义的函数函数没有定义.

像下面的例子中,

#include

#include

int main()

{

gsl_block * b = gsl_block_alloc(100);

printf("length of block = %u\n", b->size);

printf("block data address = %#x\n", b->data);

gsl_block_free(b);

return 0;

}

编译链接会提示:undefined reference to gsl_block_alloc…..

collection 2: ld ……

查看/usr/local/include/gsl(默认安装路径)中gsl_block_double.h

发现其中包含了函数声明, 但是没有函数定义.

感谢网友,从网上找到了答案.在编译的时候,编译器只要求有函数原型即可.

但是,在链接的时候(ld为链接程序),则需要函数的具体定义,所以,在链接的

时候需要把已经编译好的库也链接过来, 而不能只包含头文件.

从http://ubuntuforums.org/showthread.php?t=270924得知,

可以使用pkg-config –libs gsl来查询使用该库的时候所需的链接选项,

我的是 :  -L/usr/local/lib -lgsl -lgslcblas -lm

另外, 可以使用pkg-config –cflags gsl 会给出编译时需要的编译选项.

如果提示

Package gsl was not found in the pkg-config search path.

Perhaps you should add the directory containing `gsl.pc’

to the PKG_CONFIG_PATH environment variable

把相应的/usr/local/lib/pkgconfig 加入环境变亮 PKG_CONFIG_PATH中就可以了

一种做法是在自己目录下 .bash_profile中加入

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

export PKG_CONFIG_PATH

然后, source .bash_profile  即可.

另外,也可以直接在终端输入

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

export PKG_CONFIG_PATH

但这只对当前终端窗口适用.

按照这样的编译选项编译之后,运行时 还可能提示出错,

$ ./a.out

./a.out: error while loading shared libraries:

libgsl.so.0: cannot open shared object file: No such

file or directory.

这时候, 需要建立LD_LIBRARAY_PATH 的环境变亮.

LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

export LD_LIBRARY_PATH

同样可以加入.bash_profile 中,

这样再运行时就没有问题了.

参考:http://wiki.case.edu/ITS/High_Performance_Computing_Cluster/help_on_GSL

linux下gsl怎么运行,linux下gsl安装问题与解决相关推荐

  1. Windows下 jupyter notebook 运行multiprocessing 报错的问题与解决方法

    文章目录 测试用的代码 错误 解决方法 测试用的代码 下面每一个对应一个jupyter notebook的单元格 import time from multiprocessing import Pro ...

  2. 奔跑吧linux内核-使用qemu运行linux系统

    安装linux主机相关工具 sudo apt-get install qemu-system-arm libncurses5-dev gcc-aarch64-linux-gnu build-essen ...

  3. linux在什么环境运行,Linux的应用环境

    原标题:Linux的应用环境 对于大多数人使用的个人电脑,基本安装的都是微软的Windows系统,它最大优势是图形化的交互窗口,这将给用户在操作和体验上带来极大的方便.然而,Linux由于历史原因,给 ...

  4. 【点云3D目标检测】OpenPCDet下Spconv1.x与Spconv2.x的安装问题及解决方法

    目录 前言 一.spcon2.x版本的安装 1.安装spcon2.x版本所需要求 2.创建虚拟环境并安装相应的pytorch.torchvision 3.安装spcon2.x 4.测试spcon2.x ...

  5. linux fedora14 u盘运行,Win7下Fedora 14 硬盘或U盘安装指南

    由于Fedora的调试功能比较好,又加之Fedora 14刚刚发行,不免有了试试的冲动,郁闷的是实验室的机器都没有光驱,因此只能采用硬盘或u盘安装,二者步骤基本相似. 1 EasyBCD 由于原来装的 ...

  6. linux下clone一直运行,Linux中vgimportclone命令起什么作用呢?

    摘要: 下文讲述Linux中vgimportclone的功能说明,如下所示: vgimportclone命令功能: 用于导入卷组并同时重命名复制的卷组 vgimportclone命令注意事项: 复制的 ...

  7. linux下hg无法运行_Linux下Mercurial(hg)配置说明

    这个工具在国内很少人使用,所以中文资料匮乏.只有官方的website上有一些少得可怜的中文资料了.不过总体上来说,hg还是比较好用的. 这里绍一下hg服务器的配置.关于hg在基本用法参见mercria ...

  8. linux使得python后台运行,linux 下后台运行python脚本

    &符号 这两天要在服务器端一直运行一个Python脚本,当然就想到了在命令后面加&符号 $ python /data/python/server.py >python.log & ...

  9. linux下编译与运行,Linux操作系统驱动编译与运行是怎样的?

    一.手工加载测试 1.insmod ./key_test.ko 加载驱动模块到内核 2.cat /proc/modules |grep key_test 查看key_test模块在内核中的地址,不加过 ...

最新文章

  1. SAD和SATD的区别[摘]
  2. windows平台,开发环境变量配置
  3. HBase major version number must be less than 2 for hbase-sink
  4. (Android Studio)ActionBar's Theme/Style [ActionBar主题风格修改]
  5. 工程建筑行业SAP整体解决方案
  6. mysql 取消主从复制_MySQL:第一次看到有人把MySQL主从复制讲解的这么清楚
  7. addr2line探秘(没有core怎么办)
  8. 扔掉,MySQL!性能被 MariaDB 吊打…
  9. selenium操作cookies实现免密登录,自动发微博
  10. 我的Git使用-资料查询,名博笔记
  11. 第一章 处理器体系结构
  12. SpringMVC框架、Spring boot框架、SSM區別
  13. 从Clarifai的估值聊聊深度学习
  14. nginx同一域名下部署多个vue项目
  15. typedef struct 和 struct 的区别
  16. pie函数--Matplotlib
  17. 清理tomcat服务器日志文件,Tomcat日志配置与清理
  18. 软件测试用例.范文,软件测试用例模板范文.doc
  19. SpringBootJ2EE相关介绍
  20. 关于左连接查询出现排序问题

热门文章

  1. WiX安装选项--环境变量
  2. [导入]创建一个ASP通用分页类代码部分
  3. 未能初始化social club错误代码0_智能电表错误代码大全 报警灯常亮原因
  4. mysql8.0.11创建用户报错_mysql8.0创建用户授予权限报错解决方法
  5. http-server 简介 复制的
  6. 编辑文件 vi,vim的基本操作
  7. 使用 putty 免密码 ssh 登录 mac os
  8. VMware Workstation 11网络桥接可以通,NAT不能与主机通信解决办法
  9. 我的Dll(动态链接库)学习笔记(转)
  10. ASP.NET实现页面传值的几种方法