Я пытаюсь скомпилировать qgifer-0.2.1-source из его источника в Ubuntu. У меня есть все установленные зависимости. Я компилирую согласно ниже инструкции от readme источника.
cd qgifer_source_dir
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX="/usr/local/" -DQUIET_MODE=ON
make
sudo make install
Все пошло прекрасное включая компиляции и obj создание, но когда оно начинает связываться, файл frameplayer.cpp
неудавшийся.
Это, кажется, проблема с пакетом OpenCV. Я установил OpenCV согласно инструкции.
Детали OpenCV:
$ pkg-config opencv --libs
-L/usr/local/lib -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core -lopencv_hal
Ошибочный файл frameplayer.cpp
заголовок содержит:
#ifndef FRAMEPLAYER_H
#define FRAMEPLAYER_H
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
OpenCV установлен в моей системе как это:
a) это содержит cmake файлы конфигурации для OpenCV
/usr/local/share/OpenCV
b) hpp файлы (ядро, highgui..) присутствует в
/usr/local/include/opencv2
Они я попробовал, но не работал
a) переустановите openCV
b) настройте источник снова путем изменения заголовочного файла с полным hpp путем к файлу и сделайте
Любая справка ценилась бы.
Детали ошибки:
arindam@arindam-sandbox:~/Downloads/qgifer-0.2.1-source/build$ sudo make
[ 1%] Generating qrc_res.cxx
[ 3%] Generating src/moc_frameplayer.cxx
[ 4%] Generating src/moc_previewwidget.cxx
[ 6%] Generating src/moc_mainwindow.cxx
..............
..............
[ 96%] Building CXX object CMakeFiles/qgifer.dir/src/moc_interpolationdialog.cxx.o
[ 98%] Building CXX object CMakeFiles/qgifer.dir/src/moc_textobject.cxx.o
[100%] Building CXX object CMakeFiles/qgifer.dir/qrc_res.cxx.o
Linking CXX executable qgifer
CMakeFiles/qgifer.dir/src/frameplayer.cpp.o: In function `FramePlayer::FramePlayer(QWidget*)':
frameplayer.cpp:(.text+0x984): undefined reference to `cv::VideoCapture::VideoCapture()'
frameplayer.cpp:(.text+0xddf): undefined reference to `cv::VideoCapture::~VideoCapture()'
CMakeFiles/qgifer.dir/src/frameplayer.cpp.o: In function `FramePlayer::~FramePlayer()':
frameplayer.cpp:(.text+0xf07): undefined reference to `cv::VideoCapture::~VideoCapture()'
CMakeFiles/qgifer.dir/src/frameplayer.cpp.o: In function `FramePlayer::~FramePlayer()':
frameplayer.cpp:(.text+0xf77): undefined reference to `cv::VideoCapture::~VideoCapture()'
CMakeFiles/qgifer.dir/src/frameplayer.cpp.o: In function `FramePlayer::nextFrame()':
..............
mainwindow.cpp:(.text+0x6f8c): undefined reference to `cv::VideoCapture::isOpened() const'
mainwindow.cpp:(.text+0x7139): undefined reference to `cv::VideoCapture::get(int) const'
collect2: error: ld returned exit 1 status
CMakeFiles/qgifer.dir/build.make:1123: recipe for target 'qgifer' failed
make [2]: *** [qgifer] Error 1
CMakeFiles/Makefile2:60: recipe for target 'CMakeFiles/qgifer.dir/all' failed
make [1]: *** [CMakeFiles/qgifer.dir/all] Error 2
Makefile:136: recipe for target 'all' failed
make: *** [all] Error 2