Прежде всего, я работаю с Centos 7
Я пытаюсь скомпилировать последний darktable и преодолел несколько проблем, включая компиляцию gphoto2, exiv2 и т. Д.
Но теперь, когда я пытаюсь собрать darktable, используя основные инструкции здесь:
https://github.com/darktable-org/darktable
mkdir build/
cd build/
cmake -DCMAKE_INSTALL_PREFIX=/opt/darktable/ ..
make
sudo make install
При попытке сделать cmake несколько раз мне пришлось решить несколько проблем с зависимостями, но я застрял в одной.
Centos7 поставляется с Exiv2 версии 0.23, Darktable требует минимальной версии 0.24
Я удалил exiv2 0.23 с помощью dnf, а затем успешно скомпилировал и установил exiv2 из исходного кода до версии 0.26.
После нескольких попыток я настроил exiv2 с —префикс = / USR как сказал darktable он не может найти библиотеки.
Теперь у меня все та же проблема
и cmake выходит со следующей ошибкой:
CMake Error at cmake/modules/FindExiv2.cmake:46 (message):
Exiv2 version check failed. Version was found, at least version 0.24 is
required
Call Stack (most recent call first):
src/CMakeLists.txt:292 (find_package)
-- Configuring incomplete, errors occurred!
See also "/opt/darktable-2.4.1/build/CMakeFiles/CMakeOutput.log".
See also "/opt/darktable-2.4.1/build/CMakeFiles/CMakeError.log".
Мои знания о cmake практически ничего не значат, но я вижу, что строка 292 src / CMakeLists.txt ищет пакет, который больше не существует, потому что я удалил его с помощью dnf.
# Require exiv2 >= 0.24 to make sure everything we need is available
find_package(Exiv2 0.24 REQUIRED)
include_directories(SYSTEM ${Exiv2_INCLUDE_DIRS})
list(APPEND LIBS ${Exiv2_LIBRARIES})
add_definitions(${Exiv2_DEFINITIONS})
Но как я могу заставить cmake искать exiv2, который я собрал и установил?
И найти все необходимые библиотеки?
Я понял, что в / usr / lib64 / pkgconfig / usr / local / lib / pkgconfig и некоторых других много *.ПК файлы были.
После моей компиляции и установки Exiv2 он поместил этот exiv2.pc в / usr / lib / pkgconfig /. И это был единственный файл там.
Поэтому я сделал мягкую ссылку в / usr / lib64 / pkgconfig на файл exiv2.pc
и он сделал свою работу, только что появился еще один список проблем.
Эта строка CMake ищет файлы заголовков в Exiv2_INCLUDE_DIRS
и для файла библиотеки Exiv2_LIBRARIES
, Попробуйте установить эти переменные в команде CMake:
cmake [...] -DExiv2_INCLUDE_DIRS=/usr/include -DExiv2_LIBRARIES=/usr/lib
(Возможно, последним должен быть сам файл библиотеки, а не его каталог, я не знаю.)
(The [...]
должно быть заменено теми аргументами, которые у вас уже были.)
Других решений пока нет …