GNU 链接器“ld”是否创建了对 `fftw_alloc_complex

问题描述

我得到ae的错误如下

fftw_oct.f90:(.text+0x26a): undefined reference to `fftw_alloc_real'
/usr/local/bin/ld: fftw_oct.f90:(.text+0x3a7): undefined reference to `fftw_alloc_complex'
/usr/local/bin/ld: fftw_oct.f90:(.text+0x4fb): undefined reference to `fftw_alloc_complex'

这个错误是由 GNU LINKER 引起的吗?

解决方法

链接器不会发明引用;如果您有未定义的引用,则意味着您(或您链接的内容)引用了您未链接的内容。

这可能意味着几件事 - 例如,您可能在链接行上缺少一个库(检查是否缺少 (let [foo (atom [])] (do (swap! foo conj {:foo "bar"}) (swap! foo conj {:foo "baz"})) @foo) => [{:foo "bar"} {:foo "baz"}] 标志),或者您编译的某些内容包含未启用的条件({ {1}} 等),因此省略了这些符号。

如果它在编译时没有给您带来麻烦(检查您的警告),您可能有一个包含缺少符号声明的标头。这应该可以帮助您缩小其实现的位置。