Вы можете получить источник ветки 2.4 здесь и собрать его, я думаю, что это лучшее решение, и оно сработало для меня на сервере ubuntu 18.04
https://github.com/opencv/opencv/tree/2.4
инструкции по сборке opencv из исходного кода после загрузкиВетку 2.4 в виде почтового индекса и разархивировать ее можно найти здесь:
https://docs.opencv.org/trunk/d7/d9f/tutorial_linux_install.html
, и теперь вы можете скомпилировать ваш исходный код, который работал в 16.04, с помощью opencv 2.4.9;если вы загрузите исходный код и скомпилируете его, как показано выше, все готово, вы можете остановиться здесь, это работает для меня;
, если вы не хотите загружать исходный код и компилировать, другие вещи, на которые вы можете посмотреть: похоже на
sudo apt-get install libopencv-dev
на чистой Ubuntu 18.04 приводит к установке opencv, которая работает, если вы используете функции opencv C ++, но не работает, если вы используете функции opencv C.В этом случае он показывает много страниц ошибок в заголовках C opencv (даже для пустой программы, которая просто включает заголовок opencv и ссылки на библиотеку opencv) - поэтому он находит заголовки и библиотеки.
Однако точно такой же код компилируется и отлично работает и на чистой Ubuntu 14.04 и Ubuntu 16.04.К сожалению,
apt-cache policy libopencv-dev
эта команда показывает, что существует только одна версия opencv, доступная для ubuntu 18.04, однако, если вы установите ubuntu / xubuntu 16.04, вы получите версию, которая также работает с кодом C.
Предположим, что искомая версия существует или появится в Ubuntu 18.04 в какой-то момент;строка версии 16.04 - 2.4.9.1 + dfsg-1.5ubuntu1 - в этом случае команда для установки этой (не по умолчанию) версии будет, например:
sudo apt-get install libopencv-dev=2.4.9.1+dfsg-1.5ubuntu1
отметить, что вам нужно проверитьс помощью команды политики apt-cache, показанной выше, чтобы получить точную строку версии;Например, для build-essential при установке версии по умолчанию, включенной в ubuntu 18.04, следующие 2 команды эквивалентны:
sudo apt-get install build-essential
sudo apt-get install build-essential=12.4ubuntu1
, в некоторых случаях вы можете удалить файлы * .deb из / var / cache /apt / archives / затем установите желаемый пакет и скопируйте новые файлы * .deb из этого каталога, например, из системы 16.04 в систему 18.04, а затем используйте dpkg -i * .deb для их установки;но это лучше всего работает для небольшого числа пакетов без зависимостей;libopencv-dev имеет много пакетов и зависимостей, поэтому это не работает;
, поэтому вы можете попробовать загрузить исходный код и собрать его из исходного кода;отредактируйте
/etc/apt/sources.list
, чтобы раскомментировать строки deb-src, затем выполните
sudo apt-get update
и затем sudo
apt-get source libopencv-dev