Как настроить CMakeLists.txt для поиска файла .PC (pkg-config с pkg_search_module) по пути, отличному от пути по умолчанию?

Я пытаюсь создать простой проект с использованием расширения SDL2 и SDL2_image. Поскольку SDL2_image не предоставляет официальной поддержки для модулей Find * .cmake, моей альтернативой было использование pkg-config для поиска этих библиотек.

Однако я сам собрал SDL2 и SDL2_image и установил их по собственному пути (~ / Library / SDL2 и ~ / Library / SDL2_image).

CMake, похоже, может правильно найти SDL2, но не может найти SDL2_image, даже если я помещаю файл .PC в системный путь по умолчанию (/ usr / share / pkgconfig).

Как мне сказать CMake искать файл .PC по нестандартному (системному) пути? Мне это нужно для создания простого проекта с использованием SDL2 и SDL2_image.

Я попытался поместить файл SDL2_image.pc в системный путь по умолчанию для файлов .PC (/ usr / share / pkgconfig), но, похоже, он ничего не меняет.

find_package(PkgConfig)

# SDL2 can be found and included
pkg_search_module(SDL2 REQUIRED sdl2)

# SDL2_image cannot be found and thus the project doesn't configure/generate.
pkg_search_module(SDL2IMAGE REQUIRED SDL2_image>=2.0.0)

Сообщение об ошибке при запуске «cmake»:

-- Checking for one of the modules 'SDL2_image>=2.0.0'
CMake Error at /usr/share/cmake-3.7/Modules/FindPkgConfig.cmake:637 (message):
  None of the required 'SDL2_image>=2.0.0' found
Call Stack (most recent call first):
  CMakeLists.txt:12 (pkg_search_module)

person grafitte    schedule 02.06.2019    source источник


Ответы (1)


Найдите файл pkg-config * .pc и экспортируйте путь:

export PKG_CONFIG_PATH="/path/lib/pkgconfig"
person dns    schedule 14.01.2021