2011-08-27 6 views
2

다음과 같은 질문을 언급 한 후, 나는 다음과 같은 오류가 점점 계속하고, 지금 openCV2.3OpenCV2.3 및 QT 컴파일 문제

OpenCV2.3 and QTCreator 에 대한 설정 QT4.7.0에 영화, QtCreator 2.0.0이었다 Qt의 인텔리 센스에도 불구하고 내가 사용하려고하는 모든 OpenCV 기능에 대해 더 자세히 설명합니다. 이력서에

정의되지 않은 참조 : imread ('img.jpg ") 이력서에 정의되지 않은 참조 : namedWindow ("창 ")

은 내가 잘못 여기서 뭐하는 거지?

Intel 코어 2 듀오 컴퓨터에서 Win7 X86 사용.

.PRO 파일은 다음과 같이 내가 얻을 다음

#------------------------------------------------- 
# 
# Project created by QtCreator 2011-08-28T00:44:27 
# 
#------------------------------------------------- 

QT  += core 

QT  -= gui 

TARGET = myQtConsoleProject 
CONFIG += console 
CONFIG -= app_bundle 

TEMPLATE = app 


SOURCES += main.cpp 


INCLUDEPATH += H:/OpenCV2.3/build/include 
INCLUDEPATH += H:/OpenCV2.3/build/include/opencv 


LIBS += H:/OpenCV2.3/build/x86/vc9/lib/opencv_calib3d230.lib 
LIBS += H:/OpenCV2.3/build/x86/vc9/lib/opencv_contrib230.lib 
LIBS += H:/OpenCV2.3/build/x86/vc9/lib/opencv_core230.lib 
LIBS += H:/OpenCV2.3/build/x86/vc9/lib/opencv_features2d230.lib 
LIBS += H:/OpenCV2.3/build/x86/vc9/lib/opencv_flann230.lib 
LIBS += H:/OpenCV2.3/build/x86/vc9/lib/opencv_highgui230.lib 
LIBS += H:/OpenCV2.3/build/x86/vc9/lib/opencv_imgproc230.lib 
LIBS += H:/OpenCV2.3/build/x86/vc9/lib/opencv_objdetect230.lib 
LIBS += H:/OpenCV2.3/build/x86/vc9/lib/opencv_video230.lib 

그리고 오류가 포함

UPDATE
debug/main.o: In function `main': 
G:\QT Projects\myQtConsoleProject-build-desktop/../myQtConsoleProject/main.cpp:6: undefined reference to `cv::imread(std::string const&, int)' 
G:\QT Projects\myQtConsoleProject-build-desktop/../myQtConsoleProject/main.cpp:7: undefined reference to `cv::namedWindow(std::string const&, int)' 
G:\QT Projects\myQtConsoleProject-build-desktop/../myQtConsoleProject/main.cpp:8: undefined reference to `cv::_InputArray::_InputArray(cv::Mat const&)' 
G:\QT Projects\myQtConsoleProject-build-desktop/../myQtConsoleProject/main.cpp:8: undefined reference to `cv::imshow(std::string const&, cv::_InputArray const&)' 
G:\QT Projects\myQtConsoleProject-build-desktop/../myQtConsoleProject/main.cpp:9: undefined reference to `cv::waitKey(int)' 
debug/main.o: In function `~Mat': 
h:/OpenCV2.3/build/include/opencv2/core/mat.hpp:297: undefined reference to `cv::fastFree(void*)' 
debug/main.o:h:/OpenCV2.3/build/include/opencv2/core/mat.hpp:381: undefined reference to `cv::Mat::deallocate()' 
collect2: ld returned 1 exit status 
mingw32-make[1]: *** [debug\myQtConsoleProject.exe] Error 1 
mingw32-make: *** [debug] Error 2 
The process "E:/Qt/2010.04/mingw/bin/mingw32-make.exe" exited with code %2. 
Error while building project myQtConsoleProject (target: Desktop) 
When executing build step 'Make' 

: Alexdim으로 내가 다시해야한다고 지적했다 Qt가 여전히 함수를 인식 할 수 없다면 OpenCV는 사실로 밝혀졌습니다. 이 질문에 대한 대답. WIN7 x86에서 OpenCV를 다시 빌드하십시오. 나는 문제의 교정을 위해 minGW를 사용했다. VC++에서도 이와 같은 작업이 필요합니다. 어쨌든 ... 지금 OpenCV와 Qt를 사용할 수있어서 운이 좋았습니다!

+0

도움이 될 수도 있습니다. -Pro 파일에서'LIBS + = ...'줄을 3 번 반복하십시오. –

+0

@Andrey, 나는 그것을 얻지 못했습니다 .... –

+0

문제가 해결되면 설명하겠습니다. 그러나 그것이 사실이 아닐지는 의문입니다. –

답변

6

.lib은 Visual C++ 용입니다. MinGW 툴체인에 오류없이 연결할 수 있지만 OpenCV C API 만 액세스 가능하고 새 C++ API ("Cv"네임 스페이스, 클래스 ...)는 사용할 수 없습니다. 당신의 Qt는 빌드와는 MinGW 컴파일되어 있기 때문에

, 당신은 빌드/86 /와 Mingw 디렉토리가 아닌 lib 디렉토리 파일의 .A 파일을 포함해야한다.
여전히 작동하지 않는다면 QtSDK에 포함 된 컴파일러로 OpenCV를 완전히 다시 빌드해야 할 수도 있습니다.

+1

+1 밍크가 사용 된 것을 나는 눈치 채지 못했다. 그러나 전체 Qt SDK가 설치된 경우 OpenCV를 다시 작성하는 대신 Qt Creator 설정에서 MSVC2008 프로필을 선택할 수 있습니다. –

+0

@alexisdm, 네가 맞을지도 모른다. 그래서 나는 몇몇 컴파일러 설정을 시험해 보거나 새로운 빌드를 시도 할 것입니다. 나는 LI로 끝나는 mingw를 위해 LIBS를 사용하려고 시도했으나 같은 오류가 계속 발생했다. 가능할 수도 있습니다. 함께 mingw 용 OpenCV를 다시 빌드해야합니다. –

+0

@Alexisdm, 당신은 절대적으로 옳았습니다. minGW에서 OpenCV를 재구성해야했고, 모두 매력처럼 작동했습니다. minGW에 대한 LIBS 경로를 변경해야했지만 했어. 그럼에도 불구하고이 모든 것을 완료하는 데 긴 절차가 필요했습니다. –