1

これが何度か尋ねられたことは知っていますが、単純なopencvコードのリンカーエラー未定義参照にまだ苦労しています。これは私のコードです:

#include <opencv2/highgui.hpp>
using namespace cv;

int main(int argc, char** argv) {
    Mat inputImage = imread(argv[1]);
    imshow("Input Image", inputImage);

    waitKey(0);
}

Eclipse IDE、cygwin g++ コンパイラ、opencv 3.0 を使用しています。インクルード パス、ライブラリ検索パスを "C:\opencv\build\x64\vc11\lib" & "C:\opencv\build\x64\vc11\staticlib" として正しく指定し、ライブラリ: opencv_highgui300,opencv_highgui300d,opencv_core300,opencv_core300d ,opencv_imgcodecs300,opencv_imgcodecs300d であり、opencv のドキュメントから明らかなように、この単純なコードにはこれらで十分だと思います。ただし、前述のように、imread、imshow、waitkey のリンカー エラーが引き続き発生します。pkg-config を試してみましたが、64 ビット マシンで pkg-config が問題を引き起こしています。共有ライブラリの読み込み中にエラーが発生し、それも解決できませんでした。

以下はビルド出力です:
make all
ビルド ファイル: ../ShowImage.cpp 呼び出し
: Cygwin C++ Compiler
g++ -I"C:\opencv\build\include\opencv" -I"C:\opencv\build\include" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"ShowImage.d" -MT"ShowImage.d" -o "ShowImage.o" "../ShowImage.cpp" ビルド完了: .. /ShowImage.cpp

ビルド ターゲット: Test.exe 呼び出し
: Cygwin C++ リンカー
g++ -L"C:\opencv\build\x64\vc11\lib" -L"C:\opencv\build\x64\vc11\staticlib" -o "Test.exe " ./ShowImage.o -lopencv_highgui300 -lopencv_highgui300d -lopencv_core300 -lopencv_core300d -lopencv_imgcodecs300 -lopencv_imgcodecs300d

./ShowImage.o: 関数main':* */cygdrive/d/Gateway_Firmware/ImProcessing_WS/Test/Debug/../ShowImage.cpp:12: undefined reference to内 cv::imread(cv::String const&, int)' /cygdrive/d/Gateway_Firmware/ImProcessing_WS/Test /Debug/../ShowImage.cpp:12:(.text+0x44): 再配置が収まるように切り捨てられました: R_X86_64_PC32 に対する未定義のシンボル `cv::imread(cv::String const&, int)'

何か不足していますか?どんな助けでも大歓迎です。

4

1 に答える 1