Как я могу найти CMake пакет, который был скомпилирован

Прежде всего, я работаю с 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
и он сделал свою работу, только что появился еще один список проблем.

1

Решение

Эта строка CMake ищет файлы заголовков в Exiv2_INCLUDE_DIRS и для файла библиотеки Exiv2_LIBRARIES, Попробуйте установить эти переменные в команде CMake:

cmake [...] -DExiv2_INCLUDE_DIRS=/usr/include -DExiv2_LIBRARIES=/usr/lib

(Возможно, последним должен быть сам файл библиотеки, а не его каталог, я не знаю.)

(The [...] должно быть заменено теми аргументами, которые у вас уже были.)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]