2

64 ビット オペレーティング システムで Visual Studio 2012 を使用しています。プログラムで FFTW を使用しようとしていますが、ライブラリをリンクするのに問題があります。

FFTW Windows ページから 64 ビット パッケージをダウンロードしました。私は次の手順に従いました:

  • lib /machine:x64 /def:libfftw3-3.def
  • lib /machine:x64 /def:libfftw3f-3.def
  • lib /machine:x64 /def:libfftw3l-3.def

これにより、.exp ファイルと .lib ファイルが作成されました。

次のすべてのファイルを含むパスを追加しました。

プロパティ -> デバッグ -> 環境プロパティ -> VC++ ディレクトリ -> インクルード ディレクトリ プロパティ -> C/C++ -> 一般 -> 追加のインクルード ディレクトリ プロパティ -> リンカ -> 一般 -> 追加のライブラリ ディレクトリ

.lib ファイルを [プロパティ] -> [リンカー] -> [入力] -> [追加の依存関係] に追加しました

コードの先頭に次の行を追加しました。

#define FFTW_DLL
#include <fftw3.h>

次に、FFTW チュートリアルのサンプル コードを次のようにコードに挿入します。

fftw_complex *in; 
fftw_complex *out;

fftw_plan p;

in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex)*L);
out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex)*L);
p = fftw_plan_dft_1d(L, in, out,FFTW_FORWARD,FFTW_MEASURE); 

fftw_execute(p);
fftw_destroy_plan(p);
fftw_free(in);
fftw_free(out);

その後、アプリケーションをビルドしようとすると、次のエラーが発生します。

Error   1   error LNK2019: unresolved external symbol __imp__fftw_execute referenced in function _wmain C:\EEG_Hardware\source\dspApp\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj   1   1   ConsoleApplication1
Error   2   error LNK2019: unresolved external symbol __imp__fftw_plan_dft_1d referenced in function _wmain C:\EEG_Hardware\source\dspApp\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj   1   1   ConsoleApplication1
Error   3   error LNK2019: unresolved external symbol __imp__fftw_destroy_plan referenced in function _wmain    C:\EEG_Hardware\source\dspApp\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj   1   1   ConsoleApplication1
Error   4   error LNK2019: unresolved external symbol __imp__fftw_malloc referenced in function _wmain  C:\EEG_Hardware\source\dspApp\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj   1   1   ConsoleApplication1
Error   5   error LNK2019: unresolved external symbol __imp__fftw_free referenced in function _wmain    C:\EEG_Hardware\source\dspApp\ConsoleApplication1\ConsoleApplication1\ConsoleApplication1.obj   1   1   ConsoleApplication1
Error   6   error LNK1120: 5 unresolved externals   C:\EEG_Hardware\source\dspApp\ConsoleApplication1\Debug\ConsoleApplication1.exe ConsoleApplication1

このサイトを検索して、見つけられる解決策を試してみましたが、今のところうまくいきません。どんな援助でも大歓迎です!

4

1 に答える 1

0

私もあなたの手順を使用しましたが、私にとっても完全には機能しませんでした.

.exp ファイルと .lib ファイルを生成する前に、ファイルをコピーして手順を変更しました。

msobj100.dll
mspdb100.dll
mspdbcore.dll
mspdbsrv.exe

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE ディレクトリにあります。

また、最終的に 3 つの .dll ファイルを、.vcxproj と .vcxproj.filters が配置されているプロジェクトのフォルダーにコピーしました。

于 2013-02-16T15:18:22.463 に答える