2013-06-08 2 views
0

У меня возникли проблемы с попыткой реализовать fftw3 с openCV в том же проекте. Я новичок в c/C++, и любая помощь будет высоко оценена. Ниже только образец кода я использовал:Ошибка компоновщика с использованием openCV с fftw3 Visual Studio 2010

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

int main(){ 
    fftw_complex *in, *out; 
    fftw_plan p; 
    int N=8; 
    in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N); 
    out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N); 
    p = fftw_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_ESTIMATE); 
    for(int i=0; i<N; i++){ 
     in[i][0]=i; 
     in[i][1]=0; 
    } 
    fftw_execute(p); 
    for(int i=0; i<N; i++){ 
      printf("R->%f\tI->%f\n", out[i][0], out[i][1]); 
    } 
    system("pause"); 
    fftw_destroy_plan(p); 
    fftw_free(in); fftw_free(out); 
} 

код компилирует хорошо, когда его в своем собственном проекте. Но когда я пытаюсь связать FFTW3 и OpenCV вместе я получаю ошибку компоновщика:

1>video.obj : error LNK2001: unresolved external symbol _fftw_destroy_plan 
    1>video.obj : error LNK2001: unresolved external symbol _fftw_execute 
    1>video.obj : error LNK2001: unresolved external symbol _fftw_plan_dft_2d 
    1>video.obj : error LNK2001: unresolved external symbol _fftw_malloc 
    1>video.obj : error LNK2001: unresolved external symbol _fftw_free 
    1>D:\C WorkSpace\Viedo_CV\Video test\Release\Video test.exe : fatal error LNK1120: 5 unresolved externals 
    1> 
    1>Build FAILED. 

я дважды проверил все конфигурации компоновщика и они, кажется, будет хорошо (как я сказал, что все работает хорошо, когда в отдельные проекты). Библиотека openCV работает нормально. К сожалению, я не могу опубликовать свой настоящий код. Все OpenCV я использую в:

#include <opencv\\cv.h> 
    #include <opencv\\highgui.h> 
    #include <windows.h> 

Любая помощь будет оценена.

+0

Вы можете включить общий файл openCV? Я не могу представить, как вы связываете библиотеки fftw и openCV. – tir38

+0

Спасибо за комментарий, я не думаю, что понимаю, что такое «общий файл openCV», поскольку я сказал, что я новичок в c/C++ и для программирования. @ tir38 –

+0

Я просто имею в виду, что вы используете образец кода для FFTW, который является базовым и не модифицирован для вашего конкретного кода. Все имена переменных полезны для понимания проблемы, но это не то, что вы в конечном итоге называете их для вашей реализации. Я надеялся, что вы можете создать другой файл, который имеет общую реализацию вашего openCV, чтобы мы могли видеть, как openCV относится к FFTW, не вдаваясь в подробности конкретной реализации. – tir38

ответ

0

Я выяснил, что когда я установил openCV, я создал переменную окружения в месте сборки openCV и добавил местоположение OpenCV DLL в переменную Path. Что я не заметил, так это то, что я добавил x86 версию DLL в переменную Path, и мой проект был настроен как x64, причина, по которой она работала в другом проекте, - это то, что я скопировал x64 DLL в папку проекта. Все работало нормально после того, как я редактировал путь к правильному расположению библиотеки x64.

Смежные вопросы