私はCLionプロジェクトでOpenCVライブラリを使用しようとしていますが、これは成功しません。私はopencv 3.2.0をROS kineticと同時にインストールしています(私は/opt/ros/kinetic/include/opencv-3.2.0ディレクトリにありますが、pythonでcv2をインポートできます)。次の簡単なコードで
cmake_minimum_required(VERSION 3.6)
project(visual_slam)
set(CMAKE_CXX_STANDARD 11)
set(SOURCE_FILES main.cpp)
set(OpenCV_DIR /opt/ros/kinetic/include/opencv-3.2.0)
include_directories(${OpenCV_DIR})
add_executable(visual_slam ${SOURCE_FILES})
::私は、このようなCMakeLists.txtを使用する場合でも、
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace cv;
int main()
{
return 0;
}
私は次のエラーを取得:
CMakeFiles/visual_slam.dir/main.cpp.o: In function
cv::String::~String()': /opt/ros/kinetic/include/opencv-3.2.0/opencv2/core/cvstd.hpp:664: undefined reference to
cv::String::deallocate()' CMakeFiles/visual_slam.dir/main.cpp.o: In functioncv::String::operator=(cv::String const&)': /opt/ros/kinetic/include/opencv-3.2.0/opencv2/core/cvstd.hpp:672: undefined reference to
cv::String::deallocate()'
このようなエラーがOpenCV linking problems with ROSでも議論されました、完全にアンインストールしてからOpenCVを再インストールする必要が本当にありますか?それ以上のクイックソリューションはありますか?
2番目の質問は、正しくROSからCMakeLists.txtにOpenCVを追加する方法ですか?現在のCMakeList(上の図)は、柔軟性がないように見えます。私はすでに
find_package(OpenCV 3 REQUIRED)
target_link_libraries(visual_slam ${OpenCV_LIBRARIES})
を追加しようとしましたが、エラーがcmakeのは
By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "OpenCV", but
CMake did not find one.
Could not find a package configuration file provided
by "OpenCV" (requested version 3) with any of the following names:
OpenCVConfig.cmake
opencv-config.cmake
ありがとうございます。Clionをターミナルから起動すると、問題は解決されます。詳細についてはhttp://answers.ros.org/question/210534/jetbrains-clion-ide-setup-for-ros/ –
ああ、問題はIDEに関連していました。 Qt Creator(私が使用している)btwでも同じことが起こります。 – rbaleksandar