【问题标题】:Linking gfortran libraries to c++ program in CodeBlocks under Ubuntu在 Ubuntu 下的 CodeBlocks 中将 gfortran 库链接到 c++ 程序
【发布时间】:2012-05-29 16:06:37
【问题描述】:

我在 Vmware 下有一个 Ubuntu,并且使用 Code::Blocks,因为我不是一个非常强大的命令行用户 并且更喜欢 IDE 而不是 Vim+console。

我正在尝试编译一个使用 c++ 包装器到 fortran 库的程序。 但是编译给了我以下错误:

undefined reference to `_gfortran_compare_string'

这种类型的错误很多,还有一堆类似的错误。

我有 gfortran 4.6.3。我发现搜索这可能是一个链接问题,人们说 对链接器使用 -lgfortran 选项。当我将它添加到 Code::Blocks 中的链接器选项时,它不会改变任何东西,错误仍然存​​在。所以,这里有一些问题:

  1. 这是链接器的正确选项吗?
  2. 我是否必须为链接器提供指向 fortran 库的直接路径?
  3. 如何找到 fortran 库的安装位置? (我对linux不太了解((())
  4. 我做错了什么以及如何解决。

【问题讨论】:

  • 这个 Fortran 库是用你安装的相同版本的gfortran 编译的吗?否则,它可能需要来自另一个版本的 libgfortran.so 的符号。

标签: linker g++ codeblocks gfortran


【解决方案1】:

您是否已将 gfortran 添加为库以链接到您的项目或 lgfortran? l 只是 g++ 的一个选项,用于将库 gfortran 链接到您的代码。我对 Code::Blocks 不熟悉,但是您应该寻找一个可以输入要使用的库并直接添加 gfortran 的地方。 我的猜测是 Code::Blocks 方面可以帮助你找到这个地方。

金库林

【讨论】:

  • 是的,我知道可以在 Code::Blocks 中输入库的位置。但是我不知道 gfortran 库在 linux 中的位置,或者我实际上应该添加库中的哪些文件。也许只是将整个目录传递给链接器?
【解决方案2】:

我的猜测类似于 /bin/lib /usr/lib 或 /usr/local/lib。看看你的文件系统。不幸的是,我没有在工作中使用 Linux。也许是其他人?

金库林

【讨论】:

  • 是的,我尝试使用 find /usr -name gfortran 之类的东西进行搜索,但只找到二进制 gfortran 和文档,但没有库。也许我不明白什么。也许有人会告诉我。还是谢谢你!
  • 您应该尝试使用find /usr -name \*gfortran\*。该库很可能是 /usr/lib/libgfortran.so.1/usr/lib/gfortran.so.3,或者如果在 64 位 Linux 上运行,它可能在 /usr/lib64 中。如果gfortran 不是来自发行版包,它也可能在其他地方。
猜你喜欢
  • 1970-01-01
  • 2017-06-30
  • 2014-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-21
  • 1970-01-01
相关资源
最近更新 更多