私はopencvでCmake
を使ってC++でプロジェクトをビルドしようとしています。しかし、私が解決できなかったエラーがあります。私はたくさんの検索をしましたが、何も見つかりませんでした。CMake - OpenCV - -DisplayImageが見つからない
注:
私はOpenCVに初心者です。だから私はこのライブラリがなぜ必要なのか分からない。ウェブサイトで同じことをするだけです。
エラーは/usr/bin/ld: cannot find -lDisplayImage
です。
マイcode
:
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
// read image
Mat img = imread("foo.jpg", CV_LOAD_IMAGE_UNCHANGED);
// show it in the window
imshow("Window Name",img);
waitKey();
}
マイCMakeLists.txt
:
cmake_minimum_required(VERSION 3.8)
project(image_processing)
find_package(OpenCV REQUIRED)
set(CMAKE_CXX_STANDARD 11)
set(SOURCE_FILES main.cpp)
add_executable(image_processing ${SOURCE_FILES})
target_link_libraries(image_processing DisplayImage ${OpenCV_LIBS})
マイコンパイル出力:
[ 50%] Linking CXX executable image_processing
/usr/bin/ld: cannot find -lDisplayImage
collect2: error: ld returned 1 exit status
CMakeFiles/image_processing.dir/build.make:137: recipe for target 'image_processing' failed
make[3]: *** [image_processing] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/image_processing.dir/all' failed
make[2]: *** [CMakeFiles/image_processing.dir/all] Error 2
CMakeFiles/Makefile2:79: recipe for target 'CMakeFiles/image_processing.dir/rule' failed
make[1]: *** [CMakeFiles/image_processing.dir/rule] Error 2
Makefile:118: recipe for target 'image_processing' failed
make: *** [image_processing] Error 2
ld -ldisplayimage --verbose
コマンドの出力:
attempt to open //usr/local/lib/x86_64-linux-gnu/libdisplayimage.so failed
attempt to open //usr/local/lib/x86_64-linux-gnu/libdisplayimage.a failed
attempt to open //lib/x86_64-linux-gnu/libdisplayimage.so failed
attempt to open //lib/x86_64-linux-gnu/libdisplayimage.a failed
attempt to open //usr/lib/x86_64-linux-gnu/libdisplayimage.so failed
attempt to open //usr/lib/x86_64-linux-gnu/libdisplayimage.a failed
attempt to open //usr/local/lib64/libdisplayimage.so failed
attempt to open //usr/local/lib64/libdisplayimage.a failed
attempt to open //lib64/libdisplayimage.so failed
attempt to open //lib64/libdisplayimage.a failed
attempt to open //usr/lib64/libdisplayimage.so failed
attempt to open //usr/lib64/libdisplayimage.a failed
attempt to open //usr/local/lib/libdisplayimage.so failed
attempt to open //usr/local/lib/libdisplayimage.a failed
attempt to open //lib/libdisplayimage.so failed
attempt to open //lib/libdisplayimage.a failed
attempt to open //usr/lib/libdisplayimage.so failed
attempt to open //usr/lib/libdisplayimage.a failed
attempt to open //usr/x86_64-linux-gnu/lib64/libdisplayimage.so failed
attempt to open //usr/x86_64-linux-gnu/lib64/libdisplayimage.a failed
attempt to open //usr/x86_64-linux-gnu/lib/libdisplayimage.so failed
attempt to open //usr/x86_64-linux-gnu/lib/libdisplayimage.a failed
ld: cannot find -ldisplayimage
私はそのライブラリを見つけようとしましたが、見つけられませんでした。私は自分のlib
フォルダのすべてをチェックしました。
私のopencvは/opt/opencv/
にインストールされ、/opt/opencv/release/
で構築されています。
ありがとうございました。私はそれを解決する方法について何も知らない。
あなたがうまくリンクしようとしていない 'DisplayImage'ライブラリとは何ですか?また、OpenCVとは何が関係していますか? –
私のコードを追加しました。 – Zaphiel
あなたはまだ上記に答えていない、と私はまだOpenCVに関連するエラーは表示されません。あなたは説明していない、リンカが見つけることができず、明らかにあなたのコードでも使われていない、あいまいではないライブラリにリンクしようとしています。 –