2012-01-15 12 views
2

나는 다음과 같은 링커 오류가 발생합니다 :정의되지 않은 참조 : fontQt

/tmp/cclOj2K8.o: In function `main': 
fontTest.cpp:(.text+0x96): undefined reference to `cv::fontQt(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, cv::Scalar_<double>, int, int, int)' 
fontTest.cpp:(.text+0x151): undefined reference to `cv::addText(cv::Mat const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, cv::Point_<int>, CvFont)' 
collect2: ld returned 1 exit status 

내가 입력 컴파일하려면 :

gcc `pkg-config --cflags opencv` `pkg-config --libs opencv` -o fontTest fontTest.cpp 

나는 OpenCV의 2.3.1가 설치되어 있습니까. 나는 무엇을 놓치고

-L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann 

-I/usr/local/include/opencv -I/usr/local/include 

:

#include <cv.h> 
#include <highgui.h> 
#include <stdio.h> 
#include <stdlib.h> 
#include <string> 


using namespace cv; 

int main(int argc, char* argv[]) { 
    Mat img1; 
    CvFont font = fontQt("Times"); 
    addText(img1, "Hello World !", Point(50,50), font); 
    imshow("image", img1); 
    waitKey(0); 
} 

PKG-설정의 출력됩니다 여기

내 소스 코드 (fontTest.cpp)인가?

도움 주셔서 감사합니다.

+0

'pkg-config --cflags opencv' 및'pkg-config --libs opencv' 명령의 결과는 무엇입니까? 이것은 gcc의 실제 호출을 보여 주며 디버그를 도와줍니다. 어쨌든 필요한 라이브러리에 연결하지 않습니다. – pmr

+0

나는 나의 질문을 편집하고 pkg-config의 결과물을 포함시켰다. 문제는 내가 필요한 라이브러리를 연결하지 않는다는 것입니다. 내 질문은 어떤 라이브러리를 놓치고 있는지입니다. 누락 된 라이브러리는 아마도 Qt 라이브러리 일 것이지만 어느 라이브러리인지는 알 수 없습니다. – RawMean

+0

출력이 정상적으로 보입니다. 다음 질문은 : OpenCV가 실제로'/ usr/local /'에 설치되어 있고 opencv_highgui가 설치되었을 때 만들어 졌는가? '/ usr/local /'에 있다면 배포 패키지 관리자를 사용하지 않은 이유는 무엇입니까? – pmr

답변

2

나는 동일한 문제가있었습니다. OpenCV를 컴파일 할 때 QT (WITH_QT = ON)를 활성화하지 않은 것으로 밝혀졌습니다.