2017-02-21 4 views
0

私は単純なOpenCVプログラムをビルドしたいが、プロジェクトをビルドすると失敗し、ここでエラーopencvプログラムと "未定義参照"エラーを作成するときに "No rule to target ..."というエラーが発生する

No rule to make target `/usr/lib/x86_64-linux-gnu/libconsole_bridge.so,opencv_videostab', needed by `/home/turtlebot/catkin_ws/devel/lib/multi_robot_slam/imageConverter'. Stop. 

私CmakeLists.txtです:

cmake_minimum_required(VERSION 2.8.3) 
project(robot_slam) 

find_package(catkin REQUIRED 
    COMPONENTS 
    cmake_modules 
    roscpp 
    sensor_msgs 
    cv_bridge 
    std_msgs 
    image_transport 
) 
find_package(OpenCV REQUIRED) 

include_directories(include ${catkin_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS}) 

catkin_package() 

add_executable(imageConverter src/imageConverter.cpp) 
target_link_libraries(imageConverter ${catkin_LIBRARIES} ${OpenCV_LIBRARIES}) 

誰でも問題が何であるか、それを解決する方法を知っていますか?

No rule to make target /usr/lib/x86_64linux-gnu/libconsole_bridge.so,opencv_videostab', needed by /home/turtlebot/catkin_ws/devel/lib/multi_robot_slam/imageConverter'.Stop. 

は、誰かが間違ってコンマの代わりにスペースを経由してライブラリを列挙することを意味します

+0

それは '/ usr/lib/x86_64-linux-gnu/libconsole_bridge.so、opencv_videostab'は誰かがスペースの代わりにカンマ**で間違ってライブラリを列挙したことを意味します。 'FindOpenCV.cmake'を修正しましたか? OpenCVを見つけるためのキャッシュ変数をいくつか設定しましたか? – Tsyvarev

+0

@Tsyvarevあなたの有用な答えをありがとう。私は間違ってカンマを介してライブラリを列挙しているようだ。しかし、私はthis.Itを変更すると、新しい問題が出てくる.'cv :: namedWindow(...) 'とすべての関数i LD_LIBRARY_PATH = $のLD_LIBRARY_PATH:は/ usr/local/libの 輸出LD_LIBRARY_PATH LIBRARY_PATH = $ LIBRARY_PATH:は/ usr/local/libに 輸出すべての未定義reference.Iは、/ etc/profileをのように変数を追加する必要があり品種を名前空間に属する使用OpenCV_INCLUDE_DIRS =/usr/local/includeexport OpenCV_INCLUDE_DIRS export PATH = $ PATH:$ HOME/opencv-3.2.0/build/bin – Jack

+0

未定義の参照とは、コードに必要なヘッダーを含めなかったことを意味します。 'namedWindowは()' の#include '以下のように、 –

答えて

0

私は最終的にそれをspace.Fromするように変更コンマで私の問題を解決し、私はそれを学びました。

それに、私はまた、これらの問題は通常、ライブラリが存在しないことを意味し、または上に複数のバージョンのlibがある

undefined reference to ***. 

の問題を解決し、あなたのcomputer.For #include<>を使用するので、私は、それがありますopencv3.2のヘッダーファイルlibをopencv2.4.Soで使用していましたが、find_package(OpenCV REQUIRED)find_package(OpenCV 3 REQUIRED)に変更してlibを使用することもopencv3.2です。すべての問題は無くなり、すべてがうまく行きます!

関連する問題