linux编译链接函数库,linux用命令行编译使用函数库

使用动态链接库

编译主程序

gfortran main.f90 libfcode.so -o.exe

运行(失败尝试)

./exe 失败!

找不到动态链接库

解决办法: 设置LD_LIBRARY_PATH,告诉linux系统 运行时候动态链接库的搜索路径

export LD_LIBRARY_PATH= ./

随后再运行

注:ldd命令可以查看可执行文件所依赖的动态链接库。

======================================================

使用第三方函数库

告诉编译器  include (mod文件)、lib(链接时候用到)、DLL Runtime Library 运行时库、路径和文件名

lapack安装(编辑make.inc => 编辑Makefile => make 生成liblapack.a,librefblas.a)

Lapack 使用

演示使用

gfortan test_lapack.f90 -o x

错误:没有定义的'sgesv"  undefined reference to ''

需要把函数库带进来,有三种方法:

1 直接把函数库带进来 (每次都需要输入函数库的名字和路径,比较粗暴的链接方式)

gfortran test_lapack.f90 -o x lapack-3.6.1/liblapack.a lapack3.6.1/librefblas.a

2 将这两个函数库拷到系统lib目录里面去

sudo cp lapack-3.6.1/lib*.a /usr/lib

以后编译时候带上库名称就可以

gfortran test_lapack.f90 -llapack -lrefblas

3 如果没有系统管理员权限,或者不想拷到系统目录下去,有另一种方法。

加-L选项,将函数库所在路径告诉编译器 gfortran test_lapack.f90 -L lapack-3.6.1/ -llapack -lrefblas

如果有include,可能还需要加-I 选项

总结

888765d7fa3c568515da1c97c00462c9.png

========================================

linux下C/C++编程导入第三方库文件的几种方法

https://blog.csdn.net/kiss0tql/article/details/81253823

===============f90调用ECCODES=============

注意:安装完成时候ECCODES_INCLUDE,$ECCODES_LIB这两个环境变量, -I, -L后面不能有空格。此外指定库名字为-leccodes_f90

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值