2012-01-15 30 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 

I型コンパイルするには:

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

私はOpenCVの2.3.1がインストールされています。ここで

は、私のソースコード(fontTest.cpp)です:

#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-config設定の出力は、次のとおりです。

-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 

私は何をしないのですか?

ありがとうございます。

+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)を有効にしていないことが判明しました。