linux下gsl怎么运行,linux下gsl安装问题与解决

 2023-09-18 阅读 30 评论 0

摘要:从http://www.gnu.org/software/gsl/上下载, 按照提示安装之后,一切没有问题, 但是把manual中给出的例子拿来算, 却总不能编译成功. 错误信息为头文件中定义的函数函数没有定义.像下面的例子中,LINUX教程,#include #include int main()no controller found centos7,{gsl_blo

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

像下面的例子中,

LINUX教程,#include

#include

int main()

no controller found centos7,{

gsl_block * b = gsl_block_alloc(100);

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

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

gsl_block_free(b);

return 0;

vim 上一页下一页。}

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

collection 2: ld ……

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

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

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

shell运行。但是,在链接的时候(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

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/77203.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息