1

FFTW3 実装で C++ プログラムをコンパイルしようとすると、非常に奇妙なエラーが発生します。

私は次のようにコンパイルしています

g++ -O3 -lm -lfftw3 myFile.cpp -o myFileFFTW

次のようにヘッダーファイルも含めました

#include <math.h> #include "fftw3.h"

エラーは次のとおりです

(.text+0x63): `fftw_malloc' への未定義の参照

助言がありますか?

編集:

hmjd の提案が役に立ちました。 glib に対してコンパイルするときのリンカ エラー...?

3日連続で働かないと気が済まない!! hmjdさん、ありがとうございます!! あなたは私の一日を救い、私は時間通りにプロジェクトを終えることができました!!

4

1 に答える 1

0

問題は -lfftw3 がシステムに存在せず、ライブラリを正しく指定していないことだと思います。

コンパイラ コマンドの最後のライブラリ:

gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include re.c -o re -lglib-2.0

GCC リンク オプションから:

-llibrary -l library リンク時に library という名前のライブラリを検索します。(別の引数としてライブラリを使用する 2 番目の選択肢は、POSIX 準拠のためだけのものであり、推奨されません。)

It makes a difference where in the command you write this option;
the linker searches and processes libraries and object files in the
order they are specified.
Thus, `foo.o -lz bar.o' searches library `z' after file foo.o but
before bar.o. If bar.o refers to functions in `z', those functions
may not be loaded.

glib に対してコンパイルするときのリンカー エラーからのスニペット...?

于 2013-02-26T14:52:28.190 に答える