首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >gfortran:"-Wl,-rpath,.“的区别是什么?“出口LD_LIBRARY_PATH=.”?

gfortran:"-Wl,-rpath,.“的区别是什么?“出口LD_LIBRARY_PATH=.”?
EN

Stack Overflow用户
提问于 2022-10-19 06:07:58
回答 1查看 24关注 0票数 0

第一种方法(出口LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH):)

基于这种方法,我可以成功地通过"gfortran h5_crtdat.f90 -fintr固有模块-path /usr/local/include -lhdf5_fortran“编译h5_crtdat.f90。我也能办到。

第二种方法(-Wl,-rpath):

基于这一方法,我可以通过"gfortran h5_crtdat.f90 -非本征模块-path /usr/local/include -lhdf5_fortran -Wl,-rpath,/usr/local/lib“成功地编译h5_crtdat.f90。但是,在输入"./a.out“之后,我得到了以下错误./a.out:在加载共享库时出错: libhdf5.so.200:无法打开共享对象文件:没有这样的文件或目录”“。

问题:

我搜索了google,这两种方法在gfortran编译器中链接共享库时可以产生相同的效果。因此,当使用第二种方法时,我不知道为什么会得到错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-19 14:14:52

这两者有不同的目的。

LD_LIBRARY_PATH表示在执行已经编译和链接的可执行文件时,应该在何处搜索共享库。这是可能的,但不能保证,某些链接器也会考虑这条路径的实际链接,但还有其他变量,如LIBRARY_PATH用于这一点。

-Wl,-rpath表示在构建可执行文件时链接共享库的位置。它在运行可执行文件时没有任何效果。

在运行可执行文件时,必须设置LD_LIBRARY_PATH或某些等效项,以便能够找到运行所需的库。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74120578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档