fftw?

2010-04-28 3 views
3

나는 내 프로젝트를 fftw와 연결하려고하는데, 지금까지는 컴파일했지만 링크는하지 않았다. 사이트에서 말한 것처럼 모든 배율 .lib 파일을 생성하고 C:\Program Files\Microsoft Visual Studio 9.0\VC\lib, .h 파일을 C:\Program Files\Microsoft Visual Studio 9.0\VC\include, .dll을 C:\windows\system32으로 복사했습니다.fftw?

나는 튜토리얼 프로그램을 복사 한, 그리고 내가 무엇입니까 정확한 오류는 다음과 같습니다 그래서

1>hw10.obj : error LNK2019: unresolved external symbol __imp__fftw_free referenced in function "bool __cdecl test(void)" ([email protected]@YA_NXZ) 
1>hw10.obj : error LNK2019: unresolved external symbol __imp__fftw_destroy_plan referenced in function "bool __cdecl test(void)" ([email protected]@YA_NXZ) 
1>hw10.obj : error LNK2019: unresolved external symbol __imp__fftw_execute referenced in function "bool __cdecl test(void)" ([email protected]@YA_NXZ) 
1>hw10.obj : error LNK2019: unresolved external symbol __imp__fftw_plan_dft_1d referenced in function "bool __cdecl test(void)" ([email protected]@YA_NXZ) 
1>hw10.obj : error LNK2019: unresolved external symbol __imp__fftw_malloc referenced in function "bool __cdecl test(void)" ([email protected]@YA_NXZ) 

, 내 프로젝트 설정 문제가 될 수 있는지? 감사!

답변

2

실제로 프로젝트에서 라이브러리에 대해 연결 한 적이 있습니까?

Project -> Properties -> Linker -> Input -> Additional dependencies 

해당 필드에 라이브러리의 파일 이름을 추가해야합니다. 당신을 가정

+0

고마워요! 나는 그걸 그렇게 단순한 것으로 기대하고있었습니다. –

0

실제로 lib 디렉토리에 프로젝트를 연결 한 그것은 작동 /verbose:lib를 사용하고 그 출력과에 FFTW을 사용

dumpbin /exports fftw.lib | findstr fftw_free 
3

내 경우

의 출력을 붙여하지 않습니다 Visual Studio 2010

미리 컴파일 된 FFTW 3.3.1 Windows DLL은 Windows XP 컴퓨터에서 fftw-3.2.1-dll.zip을 사용하여 설치합니다.

  1. 열기 cmd 창은 lib.exe 폴더로 이동 C:\Program Files\Microsoft Visual Studio 10.0\VC\bin>
  2. 유형 lib /def:libfftw3-3.def
  3. 유형 lib /def:libfftw3f-3.def
  4. 당신이 명령에 오류가있는 경우, bin에 어떤 mspdb80.dll 또는 mspdb100.dll 파일을 복사 lib /def:libfftw3l-3.def
  5. 유형 예배 규칙서.
  6. 당신은 6 개 파일

    libfftw3-3.exp, libfftw3-3.lib, libfftw3f-3.exp, libfftw3f-3.lib, libfftw3l-3.exp 및 libfftw3l-3을 얻을 것이다. lib

    프로그래밍 디렉토리에 복사하십시오.

  7. bin 디렉토리에서 모두 mspdb80.dll 또는 mspdb100.dll 파일을 삭제하십시오.

  8. 폐쇄 된 프로젝트를 열고 다시 열고 다시 빌드하십시오.

0

나는 비슷한 문제가 있었다. 이 도움으로 fftw 라이브러리를 컴파일하는 데 도움이 된 것은 Compiling FFTW source in Visual studio입니다. 실제로 문제는 내 응용 프로그램 Win 32를 컴파일하고 x64 라이브러리를 사용하려고했습니다. 플랫폼이 동일한 지 확인하십시오.

+0

나는 fftw windows 바이너리 **를 32 비트 **로 미리 빌드하여 직접 빌드하지 않고 사용했습니다.32 비트 모드에서 64 비트 fftw를 사용하여 응용 프로그램을 빌드한다는 힌트를 얻었습니다. 또한 64 비트 Windows를 사용하고 fftw DLL을 'C : \ Windows \ System32'에 복사해도 작동하지 않습니다 (즉, 내 앱에서 찾을 수 없음). 어떤 이유로 'C : \ Windows \ SysWOW64'를 복사해야했습니다. –