Eu estou tentando compilar qgifer-0.2.1-source de sua fonte em Ubuntu. Eu tenho todas as dependências instaladas. Eu estou compilando como por instruções abaixo de readme da fonte.
cd qgifer_source_dir
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX="/usr/local/" -DQUIET_MODE=ON
make
sudo make install
Tudo correu bem, incluindo compilações e criação de obj, mas quando começa a vincular, o arquivo frameplayer.cpp
falhou.
Parece ser um problema com o pacote OpenCV. Eu instalei o OpenCV de acordo com a instrução .
Detalhes do 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
O cabeçalho do arquivo de erro frameplayer.cpp
contém:
#ifndef FRAMEPLAYER_H
#define FRAMEPLAYER_H
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
O OpenCV é instalado no meu sistema assim:
a) contém os arquivos de configuração do cmake para o OpenCV
/usr/local/share/OpenCV
b) os arquivos hpp (core, highgui ..) estão presentes em
/usr/local/include/opencv2
Eu tentei mas não funcionou
a) reinstale o openCV
b) configure a fonte novamente alterando o arquivo de cabeçalho com o caminho completo do arquivo hpp e faça
Qualquer ajuda seria apreciada.
Detalhes do erro:
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