Проблемы, устанавливающие Opencv 2.0 на Ubuntu 14.0

У меня есть проблемы при попытке установить OpenCV 2.0 на Ubuntu 14.04. Когда я хочу установить зависимости, я получил следующую проблему:

andres@andres-VirtualBox:~$ sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg62-dev libtiff4-dev cmake libswscale-dev libjasper-dev
[sudo] password for andres:
Reading package lists...
Done Building dependency tree  Reading state information...
Done Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created or been
moved out of Incoming. The following information may help to resolve the
situation:

The following packages have unmet dependencies:
libtiff4-dev : Depends: libtiff5-dev (> 4.0.3-6~) but it is not going to be installed 
E: Unable to correct problems, you have held broken packages.

Я хочу установить OpenCV 2.0, потому что существует старый проект, который использует ту версию OpenCV.

Обновление 1

1: Я установил libtiff5-dev, но затем он бросил другую ошибку:

The following packages have unmet dependencies:
 libjpeg-turbo8-dev : Conflicts: libjpeg62-dev but 6b1-4ubuntu1 is to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

Затем я удалил libjpeg-turbo8-dev, но он удалил libtiff5-dev. Кто-то отправил о проблеме как 4 года назад без решения:

http://ubuntuforums.org/showthread.php?t=1985957

Обновление 2

Я использовал способность вместо Кв. - добираются для установки зависимостей. Все пошло хорошо, но я проверил, что у меня есть ffmpeg и v4l как нет. Я не заботился, и я пытался скомпилировать библиотеку. Я получил следующие ошибки компиляции:

In file included from ../include/opencv/cxcore.h:2123:0,
                 from cxcore/_cxcore.h:60,
                 from cxcore/cxprecomp.cpp:43:
../include/opencv/cxcore.hpp:169:13: error: ‘ptrdiff_t’ does not name a type
     typedef ptrdiff_t difference_type;
             ^
In file included from ../include/opencv/cxcore.hpp:2243:0,
                 from ../include/opencv/cxcore.h:2123,
                 from cxcore/_cxcore.h:60,
                 from cxcore/cxprecomp.cpp:43:
../include/opencv/cxoperations.hpp:1916:15: error: ‘ptrdiff_t’ does not name a type
 static inline ptrdiff_t operator - (const FileNodeIterator& it1, const FileNodeIterator& it2)
               ^
../include/opencv/cxoperations.hpp:2465:31: error: ‘ptrdiff_t’ does not name a type
 template<typename _Tp> inline ptrdiff_t operator - (const SeqIterator<_Tp>& a,
                               ^
In file included from ../include/opencv/cxcore.hpp:2244:0,
                 from ../include/opencv/cxcore.h:2123,
                 from cxcore/_cxcore.h:60,
                 from cxcore/cxprecomp.cpp:43:
../include/opencv/cxmat.hpp: In member function ‘void cv::Mat::locateROI(cv::Size&, cv::Point&) const’:
../include/opencv/cxmat.hpp:356:5: error: ‘ptrdiff_t’ was not declared in this scope
     ptrdiff_t delta1 = data - datastart, delta2 = dataend - datastart;
     ^
../include/opencv/cxmat.hpp:356:5: note: suggested alternatives:
In file included from /usr/include/c++/4.8/utility:68:0,
                 from /usr/include/c++/4.8/algorithm:60,
                 from ../include/opencv/cxcore.hpp:51,
                 from ../include/opencv/cxcore.h:2123,
                 from cxcore/_cxcore.h:60,
                 from cxcore/cxprecomp.cpp:43:
/usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h:187:28: note:   ‘std::ptrdiff_t’
   typedef __PTRDIFF_TYPE__ ptrdiff_t;
                            ^
/usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h:187:28: note:   ‘std::ptrdiff_t’
In file included from ../include/opencv/cxcore.hpp:2244:0,
                 from ../include/opencv/cxcore.h:2123,
                 from cxcore/_cxcore.h:60,
                 from cxcore/cxprecomp.cpp:43:
../include/opencv/cxmat.hpp:356:15: error: expected ‘;’ before ‘delta1’
     ptrdiff_t delta1 = data - datastart, delta2 = dataend - datastart;
               ^
../include/opencv/cxmat.hpp:358:9: error: ‘delta1’ was not declared in this scope
     if( delta1 == 0 )
         ^
../include/opencv/cxmat.hpp:367:31: error: ‘delta2’ was not declared in this scope
     wholeSize.height = (int)((delta2 - minstep)/step + 1);
                               ^
make[2]: *** [cxprecomp.lo] Error 1
make[2]: Leaving directory `/home/andres/OpenCV-2.0.0/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/andres/OpenCV-2.0.0'
make: *** [all] Error 2
1
задан 16 February 2016 в 04:44

1 ответ

Я протестировал это на новой установленной Ubuntu 12.04 и 14.04, и оба дают почти ту же ошибку. Ошибка относительно ibjpeg-turbo8-dev : Conflicts: libjpeg62-dev.

при использовании виртуальной машины и Вы не боящиеся повредить ее , Вы могли попробовать, выполняет эту команду. Примите все, что aptitute предложит и возобновит результат.

sudo aptitude install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg62-dev libtiff4-dev cmake libswscale-dev libjasper-dev

Обновление

После установки через способность OP получают проблему компиляции. Эта проблема решена @steeldriver предложением в комментариях:

Попытка, редактируя include/opencv/cxcore.hpp файл пакета и добавляя #include <cstddef> к его списку стандартных заголовков: посмотрите здесь http://code.opencv.org/issues/1028

0
ответ дан 29 September 2019 в 12:12

Другие вопросы по тегам:

Похожие вопросы: