Я не могу заставить свой CLion собрать проект из-за странной ошибки при сохранении моих CMakeLists и/или создании проекта:
Error:Found package configuration file:
/usr/share/opencv/OpenCVConfig.cmake
but it set OpenCV_FOUND to FALSE so package "OpenCV" is considered to be NOT FOUND.
Исходный файл:
#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
Mat image;
image = imread( "lena.jpg", 1 );
if ( !image.data )
{
printf("No image data \n");
return -1;
}
namedWindow("Display Image", WINDOW_AUTOSIZE );
imshow("Display Image", image);
waitKey(0);
return 0;
}
Мой файл CMakeLists.txt:
cmake_minimum_required(VERSION 3.3)
project(Test)
find_package( OpenCV REQUIRED )
add_executable( Test main.cpp )
target_link_libraries( Test ${OpenCV_LIBS} )
$ pkg-config --cflags opencv
-I/usr/include/opencv
$ pkg-config --libs opencv
-L/lib64 -lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab -ltbb -lGL -lGLU -lrt -lpthread -lm -ldl
Дело в том, что когда я вручную cmake . & make
(все тем же файлом CMakeLists) мой проект из консоли работает просто отлично, без ошибок.
Версия OpenCV: 2.4.11-1 (arch linux) CLion: последняя.
Отличие OpenCVConfig.cm от версии git: https://www.diffchecker. com/vtmmiu1w
Вывод ручной сборки:
[dobegor@dobegor-pc Test]$ cmake .
-- The C compiler identification is GNU 5.2.0
-- The CXX compiler identification is GNU 5.2.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dobegor/ClionProjects/Test
[dobegor@dobegor-pc Test]$ make
Scanning dependencies of target Test
[ 50%] Building CXX object CMakeFiles/Test.dir/main.cpp.o
[100%] Linking CXX executable Test
[100%] Built target Test
cmake
с какими-то дополнительными параметрами. Какое значение переменнойOpenCV_DIR
в вашей (успешной) ручной сборке? Его можно найти в файлеCMakeCache.txt
. - person Tsyvarev   schedule 05.09.2015OpenCV_DIR:PATH=/usr/share/opencv
- person 12sd   schedule 05.09.2015/usr/share/opencv/OpenCVConfig.cmake
похож на этот: github.com/Itseez/opencv /blob/master/cmake/OpenCVConfig.cmake? Если да, то какой результат успешного вызоваcmake
? (Вы можете отредактировать свой вопрос, чтобы добавить этот вывод). - person Tsyvarev   schedule 05.09.2015OpenCVConfig.cmake
устанавливаетOpenCV_FOUND
в false только в случае Android. В некотором смысле это коррелирует с отсутствием совместимых двоичных файлов с другимиOpenCVConfig.cmake
. Правильно ли настроен (установлен) ваш CLion для Linux? (Можете ли вы построить и выполнить простую программу с его помощью?) - person Tsyvarev   schedule 05.09.2015message
,file(WRITE)
и т. д.) в/usr/share/opencv/OpenCVConfig.cmake
, чтобы увидеть, что на самом деле является причиной, по которойOpenCV_FOUND
установлено значение false. Приятным фактом является то, что вы можете сравнить этот результат с результатом, полученным при успешной ручной сборке. - person Tsyvarev   schedule 05.09.2015