- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我的一个可执行文件需要 libgfortran.so
。通常我只是将 -lgfortran
开关添加到编译行,它会自动与 g++
链接。但是,我正在尝试使用 CMAKE 查找库:
find_library(GFORTRAN_LIBRARY NAMES gfortran)
target_link_libraries(ncorr_test ${GFORTRAN_LIBRARY})
但是,这无法找到库。事实证明,到目前为止唯一可行的方法是像这样包含整个库名称:
find_library(GFORTRAN_LIBRARY NAMES libgfortran.so.3)
target_link_libraries(ncorr_test ${GFORTRAN_LIBRARY})
然后,它将正确链接:
/usr/bin/c++ ... /usr/lib/x86_64-linux-gnu/libgfortran.so.3 ...
但是,包括整个 .so.3
不是很便携。有谁知道更好的方法吗?通常我需要使用的库只安装在 /usr/local/lib
中并搜索没有“lib”的库名称和扩展名(即 find_library(FFTW_LIBRARY NAMES fftw3)
会在 /usr/local/lib
中找到 libfftw3.a
就好了)。
编辑:
find_library(GFORTRAN_LIBRARY NAMES libgfortran.so)
也不起作用。到目前为止,只有 libgfortran.so.3
有效。
使用 locate libgfortran
输出:
/usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.a
/usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.so
/usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.spec
/usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortranbegin.a
/usr/lib/x86_64-linux-gnu/libgfortran.so.3
/usr/lib/x86_64-linux-gnu/libgfortran.so.3.0.0
/usr/local/MATLAB/R2014a/sys/os/glnxa64/libgfortran.so.3
/usr/local/MATLAB/R2014a/sys/os/glnxa64/libgfortran.so.3.0.0
/usr/share/doc/libgfortran-4.8-dev
/usr/share/doc/libgfortran3
/var/lib/dpkg/info/libgfortran-4.8-dev:amd64.list
/var/lib/dpkg/info/libgfortran-4.8-dev:amd64.md5sums
/var/lib/dpkg/info/libgfortran3:amd64.list
/var/lib/dpkg/info/libgfortran3:amd64.md5sums
/var/lib/dpkg/info/libgfortran3:amd64.postinst
/var/lib/dpkg/info/libgfortran3:amd64.postrm
/var/lib/dpkg/info/libgfortran3:amd64.shlibs
/var/lib/dpkg/info/libgfortran3:amd64.symbols
编辑 2:
现在我只需要用户将 libgfortran.a
复制到他们的 usr\local\lib
目录
最佳答案
看起来你要么错过了你的 linux 发行版上的开发包,它应该安装 .so
链接,或者当 cmake 查找时,这样的链接所在的路径丢失了。尝试找到 libgfortran.so
链接,通常它位于 .so.3
所在的同一位置,如果找不到它,请安装缺少的开发包,如果你可以检查为什么该路径未包含在 cmake 中。
关于c++ - 将 libgfortran 与 CMAKE 链接的可移植方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30944712/
我正在尝试构建一个只有对 libgfortran 的静态引用的库(最好也是 libgcc)。 但是,如果我使用链接器标志 -static -lgfortran -static-libgfortran
这个问题在这里已经有了答案: Why does the order in which libraries are linked sometimes cause errors in GCC? (9 个
我的任务是将程序放到 docker 环境中,我使用的是 ubuntu 容器。该程序是由fortran编写的。 当我运行程序时,我得到了这个错误 ./cscheck.out: error while l
我正在尝试使用 Anaconda、仅 CPU 模式和 OpenBLAS 在 ubuntu 14.04 LTS 上编译 caffe。不幸的是,我得到一个 ld 错误。 我按照说明添加了 Anaconda
我正在运行 Fedora 28,现在 R 抛出以下错误。我现在无法更新(甚至加载)某些包。 libgfortran.so.4: 无法打开共享对象文件:没有那个文件或目录 我认为问题是 Fedora 现
PyPI 上的 Manylinux-Wheels 都附带了自己的 libgfortran(和 blas)副本。 如何将它们包含在我自己的构建中?我浏览了文档,甚至阅读了存储库中的 travis 脚本,
当我尝试在 MATLAB 中运行 mex 文件时出现以下错误: ??? Invalid MEX-file 'findimps3.mexa64': /MATLAB/bin/glnxa64/../../s
我的一个可执行文件需要 libgfortran.so。通常我只是将 -lgfortran 开关添加到编译行,它会自动与 g++ 链接。但是,我正在尝试使用 CMAKE 查找库: find_librar
我是 *nix 系统的初学者,所以我的行为可能没有意义:) 我正在尝试制作一个由我们大学团队编写的软件,在 Scientific Linux 6.5 上运行。我一直收到此错误:“libgfortran
我对在 linux 上安装我自己的程序和包还很陌生,所以请多关照 ;) 我正在使用 Linux Mint 17.3 (Rosa) 64 位 (Ubuntu Trusty) 并尝试运行位于此处的 sci
当我尝试安装 libgfortran.so.3在 Ubuntu 20.04 上使用: sudo-apt get install libgfortran3 表明: E: Unable to locat
我使用的一个应用程序刚刚更新,它不再在我的系统上运行。当我尝试运行该应用程序时出现错误:加载共享库时出错:libgfortran.so.4:无法打开共享对象文件:没有这样的文件或目录 我查看了我的系统
我在构建自己的 Python 扩展时遇到了问题。构建此代码之前(在 Debian 7 Wheezy 上)有效,但现在失败了(在 Ubuntu 15.04 Vivid 上)。 有问题的模块似乎链接正确,
我正在尝试使用此处 (SFM by Nghiaho) 中的 Structure From Motion 示例。我在运行过程的第二部分遇到了一些问题:我从这里下载了 PMVS2(基于补丁的多 View
我刚回到 Arch 上的 R 中工作,但在尝试打开 R 时出现以下错误 ▶ R /usr/lib64/R/bin/exec/R: error while loading shared librarie
我刚刚休假了一个月,所以无法说出发生这种情况的确切时间,但来自官方 Arch 存储库的 R 现在无法启动,引用 /usr/lib64/R/bin/exec/R: error while loading
我需要编译 Fortran-77 子例程以便在 iOS 上访问。我将 GCC 与 DragonEgg 一起使用插件,因此我可以将 gfortran 与 LLVM 后端一起使用。我关注了this ans
我正在使用 GraalVM 运行 Node 应用程序。我的 Node 代码包含 R 和 Java 互操作代码。 我使用 GraalVM Updater 安装了 R:gu install r Node
我尝试了许多变通办法(酿造升级/更新,brew医生,重新安装gcc和gfortran,导出库路径等)来解决此问题,但没有一个成功。 当我尝试执行Fortran可执行文件时,出现相同的错误消息: dyl
自升级到优胜美地后,我无法使用 gfortran 进行编译。最初我收到“段错误 11”,然后我: 从 http://hpc.sourceforge.net/ 更新到 gcc v.5.0 重新安装了 X
我是一名优秀的程序员,十分优秀!