Я использую ubuntu mate 18.04 и много раз пытался скомпилировать inkscape исходный код. Я следил за этим руководством https://inkscape.org/en/develop/getting-started/
, но столкнулся с проблемами, когда подошел к строке, описывающей флаги сборки cmake. Я попытался просто опустить флаги и использовать их как есть, но оба способа не увенчались успехом. Я не уверен, что именно я должен указать во флагах, чтобы они работали правильно.
может кто-нибудь объяснить команду
cmake .. -DCMAKE_INSTALL_PREFIX=$(pwd)/../inst [-DCMAKE_CXX_COMPILER_LAUNCHER=ccache]
Я не уверен, что это за флаг или должен быть, но я уверен, что именно поэтому я не могу скомпилировать.
Я пробовал компилировать, опуская "XX", но все равно получаю ошибки
:~/inkscape/build$ cmake .. -DCMAKE_INSTALL_PREFIX=$(pwd)/../inst -DCMAKE_C_COMPILER_LAUNCHER=ccache
------------------------------
Building Makefile for Inkscape
------------------------------
Source Dir: /home/users/inkscape
Binary Dir: /home/users/inkscape/build
-- Creating build files in: /home/s/inkscape/build
-- Could NOT find JeMalloc (missing: JEMALLOC_LIBRARY JEMALLOC_INCLUDE_DIR)
-- Found BoehmGC: /usr/local/lib/libgc.so
-- Found poppler: /usr/lib/x86_64-linux-gnu/libpoppler.so
-- Found poppler-glib: /usr/lib/x86_64-linux-gnu/libpoppler-glib.so
-- Found cairo-svg: /usr/lib/x86_64-linux-gnu/libcairo.so
-- Found poppler-cairo: /usr/lib/x86_64-linux-gnu/libcairo.so
-- Checking for module 'libwpg-0.3'
-- No package 'libwpg-0.3' found
-- Checking for module 'libwpg-0.2'
-- No package 'libwpg-0.2' found
-- Checking for module 'libwpd-0.9'
-- No package 'libwpd-0.9' found
-- Checking for module 'libwpd-stream-0.9'
-- No package 'libwpd-stream-0.9' found
-- Checking for module 'libwpg-0.1'
-- No package 'libwpg-0.1' found
-- Checking for module 'libwpg-stream-0.1'
-- No package 'libwpg-stream-0.1' found
-- Checking for module 'libwpd-0.8'
-- No package 'libwpd-0.8' found
-- Checking for module 'libvisio-0.1'
-- No package 'libvisio-0.1' found
-- Checking for module 'libvisio-0.0'
-- No package 'libvisio-0.0' found
-- Checking for module 'libwpd-0.9'
-- No package 'libwpd-0.9' found
-- Checking for module 'libwpd-stream-0.9'
-- No package 'libwpd-stream-0.9' found
-- Checking for module 'libcdr-0.1'
-- No package 'libcdr-0.1' found
-- Checking for module 'libcdr-0.0'
-- No package 'libcdr-0.0' found
-- Checking for module 'libwpd-0.9'
-- No package 'libwpd-0.9' found
-- Checking for module 'libwpd-stream-0.9'
-- No package 'libwpd-stream-0.9' found
-- Found Popt: /usr/lib/x86_64-linux-gnu/libpopt.so
-- Could not locate the Potrace library headers: the Trace Bitmap and Paintbucket tools will be disabled
-- Using GDL 3.6 or higher
-- Checking for module 'gtkspell3-3.0'
-- No package 'gtkspell3-3.0' found
-- Boost version: 1.65.1
-- Checking for module 'ImageMagick++<=7'
-- No package 'ImageMagick++' found
-- Checking for module 'GraphicsMagick++'
-- No package 'GraphicsMagick++' found
-- Found gettext + msgfmt to convert language files. Translation enabled
-- Found íntltool. inkscape.pot will be re-created if missing.
-- Could not locate the yaml library headers: xverb feature will be disabled
-- Looking for include file ieeefp.h
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:
POPPLER_INCLUDE_DIR
used as include directory in directory /home/users/inkscape/build/CMakeFiles/CMakeTmp
used as include directory in directory /home/users/inkscape/build/CMakeFiles/CMakeTmp
used as include directory in directory /home/users/inkscape/build/CMakeFiles/CMakeTmp
CMake Error at /usr/share/cmake-3.10/Modules/CheckIncludeFiles.cmake:69 (try_compile):
Failed to configure test project build system.
Call Stack (most recent call first):
CMakeScripts/ConfigChecks.cmake:18 (CHECK_INCLUDE_FILES)
CMakeScripts/DefineDependsandFlags.cmake:392 (include)
CMakeLists.txt:121 (include)
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:
POPPLER_INCLUDE_DIR
used as include directory in directory /home/users/inkscape
used as include directory in directory /home/uers/inkscape
Сначала убедитесь, что «Исходный код» отмечен в «Обновлениях программ» и Хранилища
sudo apt install dpkg-dev
apt source inkscape
sudo apt build-dep inkscape
cd inkscape*/
cmake .
make
У Вас нет всех необходимых библиотек разработки установленными. Источники Inkscape пользуются некоторыми библиотеками, которые должны быть установлены для компиляции его.
, Если Вы смотрите на свой вывод, Вы видите, что сборка нашла poppler, Каир-svg, но это не нашло libwpg-0.3, libwpd-stream-0.9, и т.д.
, необходимо установить все недостающие библиотеки. Просто попытайтесь скомпилировать и попробовать первыми пропавшими без вести. Это - libwpg-0.3. Обычно название пакета является именем, сопровождаемым -dev
для библиотеки разработчика. Иногда номер версии требуется и иногда не. Для libwpg-0.3 необходимо ввести:
sudo apt install libwpg-dev
Затем Вы пытаетесь скомпилировать его снова, и необходимо видеть меньше ошибки сообщений о недостающих библиотеках. Продолжите двигаться один за другим, пока Вам не установят всех их.
Это может быть хитро для нахождения корректного пакета. Иногда некоторая библиотека не может быть установлена путем, я описал здесь, но могу быть получен только из источников. Я полагаю, что установка библиотек имеет ко многим путям и сценариям для описания их всех здесь.
самый легкий путь состоит в том, чтобы попытаться ввести первые несколько букв недостающей библиотеки в sudo apt install
команда и затем нажать Вкладку . Например, введите:
sudo apt install libvisio
и затем нажимают Вкладку . Автоматическое завершение покажет доступные пакеты для установки. Выберите тот с -dev
суффикс. Если это не работает, попытайтесь найти его в Интернете или попытке выяснить, в котором упаковывают библиотеку, включен.
Удача, находящая все необходимые библиотеки. Для poppler необходимо будет также, вероятно, установить dev библиотеку, поскольку компилятор жалуется, что POPPLER_INCLUDE_DIR отсутствует. Это указывает, что у Вас есть poppler установленная библиотека, но только время выполнения, и не dev версия. Если бы Вы пропускаете некоторое имя и установку неправильная библиотека, я не волновался бы. Это просто берет некоторое количество дискового пространства и не делает ничего плохого.
команда Regarding для компиляции
cmake .. -DCMAKE_INSTALL_PREFIX=$(pwd)/../inst [-DCMAKE_CXX_COMPILER_LAUNCHER=ccache]
-D
переключатели говорят, что компилятор о дополнительном определяет используемый в исходном коде. Источник имеет некоторую условную компиляцию на основе, определяет ( https://www.tutorialspoint.com/cprogramming/c_preprocessors.htm ). Квадратные скобки указывают, что последний параметр является дополнительным. Таким образом, корректная команда с помощью последнего параметра была бы
cmake .. -DCMAKE_INSTALL_PREFIX=$(pwd)/../inst -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
или просто опустила бы последний параметр и тип
cmake .. -DCMAKE_INSTALL_PREFIX=$(pwd)/../inst