Установка сторонней библиотеки CMake - PullRequest
2 голосов
/ 04 апреля 2020

Я новичок в программировании. И для моего учебного проекта мне нужно установить стороннюю библиотеку для использования с CMake ( проект GitHub ).

Я использую Arch OS на моем P C. Обычно я собираю все пакеты без репозитория в: ~ / aur . Версия CMake - 3.17.

Затем я пытаюсь собрать библиотеку в соответствии с инструкциями:

...
cmake --config Debug "-DCMAKE_BUILD_TYPE=Debug" ..

, что вызывает ошибку:

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
PNG_INCLUDE_DIR
   used as include directory in directory /home/wizki/aur/P0267_RefImpl/P0267_RefImpl/Tests

-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly.

Если я игнорирую Эта ошибка и создайте эту библиотеку, используя:

cmake --build .

Здание успешно, но во время сборки моего проекта у меня есть ошибка:

CMake Error at CMakeLists.txt:15 (find_package):
  By not providing "Findio2d.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "io2d", but
  CMake did not find one.

Could not find a package configuration file provided by "io2d" with any of
  the following names:

    io2dConfig.cmake
    io2d-config.cmake

Add the installation prefix of "io2d" to CMAKE_PREFIX_PATH or set
"io2d_DIR" to a directory containing one of the above files.  If "io2d"
provides a separate development package or SDK, be sure it has been
installed.

-- Configuring incomplete, errors occurred!

После поиска в Интернете я попробовал это решение: Daniweb . Установлены пакеты libpng и zlib; FindPNG.cmake существует в / usr / share / cmake-3.17 / Modules / . Но мои $ CMAKE_INCLUDE_PATH и $ CMAKE_LIBRARY_PATH пусты:

[wizki@evix Debug]$ echo $CMAKE_INCLUDE_PATH

[wizki@evix Debug]$ echo $CMAKE_LIBRARY_PATH

Я пытался найти пути в FindPNG.cmake, но безрезультатно. Из CMake wiki Я полагаю, что один из путей к библиотеке - / usr / lib . Я пытался создать библиотеку внутри, но у меня та же проблема.

Что я могу попробовать дальше?

1 Ответ

0 голосов
/ 05 апреля 2020

Предполагается, что вы учитесь в C ++ Nanodegree Project по Udacity. Я застрял на той же проблеме, и я обнаружил, что во время установки IO2D после выполнения следующей команды в терминале

cmake --build . 

выполнить следующую команду

sudo make install

это будет скопируйте необходимые файлы в места, где Cmake может их найти.

Поэтому весь процесс выглядит следующим образом

git clone --recurse-submodules https://github.com/cpp-io2d/P0267_RefImpl
cd P0267_RefImpl
mkdir Debug
cd Debug
cmake --config Debug "-DCMAKE_BUILD_TYPE=Debug" ..
cmake --build .
sudo make install

Я нашел решение здесь - https://github.com/udacity/CppND-Route-Planning-Project/issues/1#issuecomment -569472612

PS: Поскольку вы новичок в программировании, я хотел бы поделиться с вами советом, что часто у других людей возникает такая же проблема, и легче найти решение на вкладке «Проблемы» GitHub. Сделки рЕПО.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...