Я использую следующий CMake файл для построения проекта OpenCV с помощью команды CMake с последующим сделать.OpenCV (связь ошибок)
cmake_minimum_required(VERSION 2.8)
project(t)
#set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} /home/keiths/opencv/opencv-2.4.11_build/build)
SET(CMAKE_C_COMPILER mpicc)
SET(CMAKE_CXX_COMPILER mpicxx)
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
include_directories(${OpenCV_INCLUDE_DIRS})
find_package(OpenCV REQUIRED)
find_package(MPI REQUIRED)
add_executable(t t.cpp)
target_link_libraries(t ${OpenCV_LIBS} ${OpenCV_LIBRARIES} opencv_core opencv_highgui opencv_calib3d opencv_contrib opencv_core opencv_features2d opencv_flann opencv_gpu opencv_highgui opencv_imgproc opencv_legacy opencv_ml opencv_nonfree opencv_objdetect opencv_ocl opencv_photo opencv_stitching opencv_superres opencv_ts opencv_video opencv_videostab rt pthread m dl)
MESSAGE(${OpenCV_LIBS})
MESSAGE(${OpenCV_INCLUDE_DIRS})
CMake завершает отлично, но сделать дает мне следующую ошибку:
CMakeFiles/t.dir/t.cpp.o: In function
main': t.cpp:(.text+0x56): undefined reference to
cv::namedWindow(std::__cxx11::basic_string, std::allocator > const&, int)' collect2: error: ld returned 1 exit status make[2]: * [t] Error 1 make[1]: * [CMakeFiles/t.dir/all] Error 2 make: *** [all] Error 2
Я попытался запустить следующую команду
г ++ t.cpp $ (PKG -config --libs opencv --cflags)
, но получают следующую ошибку
/home/keiths/tmp/ccWFcaXH.o: In function
main': t.cpp:(.text+0x56): undefined reference to
cv::namedWindow(std::__cxx11::basic_string, std::allocator > const&, int)' collect2: error: ld returned 1 exit status
Я бег следующего простого кода
#include "opencv2/opencv.hpp"
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
//#include <mpi.h>
using namespace cv;
int main(int argc, char **argv) {
Mat image;
namedWindow("Display window", WINDOW_AUTOSIZE);
return 0;
}
Я пытался так много рекомендаций, как я могу без успеха. Платформа CentOS, и я ограниченный пользователь (не root) с моими локально установленными (более свежими) версиями g ++/gcc. Я получаю правильный список библиотек для команды pkg-config и настроил пути к библиотеке, а также PATH в свою локальную папку opencv.
Просто чтобы добавить очень важный момент, я попытался скомпилировать тот же код, указав явно компилятор g ++ (/ usr/bin/g ++), и все прошло хорошо. Похоже, что проблема связана с моим локальным компилятором g ++ в '/ home/keiths/lbin'. Мне нужна эта последняя версия, но для возможности C++ 11 (старый - 4.4.7, и для обновления Sysadmin потребуется возраст для времени)