Не имея достаточных знаний по работе с проектами C ++, я скачал исходный код Inkscape от его GitLab репозиторий и сделал несколько изменений (добавив небольшую функцию) и попытался скомпилировать на основе инструкции, представленной в INSTALL.md и другие источники, доступные на их сайте.
Кажется, что в системе установлены все зависимости, но я получаю этот результат после запуска cmake в папке сборки:
------------------------------
Building Makefile for Inkscape
------------------------------
Source Dir: /home/user/myProgs/inkscape
Binary Dir: /home/user/myProgs/inkscape/build
-- Creating build files in: /home/user/myProgs/inkscape/build
-- The C compiler identification is GNU 6.3.0
-- The CXX compiler identification is GNU 6.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found GTest: /usr/lib/libgtest.so
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Checking for modules 'harfbuzz;pangocairo;pangoft2;fontconfig;gsl;gmodule-2.0;libsoup-2.4>=2.42'
--
CMake Error at /usr/share/cmake-3.7/Modules/FindPkgConfig.cmake:415 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake-3.7/Modules/FindPkgConfig.cmake:588 (_pkg_check_modules_internal)
CMakeScripts/DefineDependsandFlags.cmake:42 (pkg_check_modules)
CMakeLists.txt:136 (include)-- Configuring incomplete, errors occurred!
See also "/home/user/myProgs/inkscape/build/CMakeFiles/CMakeOutput.log".
See also "/home/user/myProgs/inkscape/build/CMakeFiles/CMakeError.log".
Соответствующие строки в DefineDependsandFlags.cmake: 42:
pkg_check_modules(INKSCAPE_DEP REQUIRED
harfbuzz
pangocairo
pangoft2
fontconfig
gsl
gmodule-2.0
libsoup-2.4>=2.42)
Насколько я проверил, все эти пакеты уже установлены в моей системе.
Вот содержание CMakeError.log в котором эти строки могут дать некоторую подсказку:
/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create CMakeFiles/cmTC_d21be.dir/CheckFunctionExists.c.o -o cmTC_d21be -rdynamic -lpthreads
/usr/bin/ld: cannot find -lpthreads
collect2: error: ld returned 1 exit status
CMakeFiles/cmTC_d21be.dir/build.make:97: recipe for target 'cmTC_d21be' failed
make[1]: *** [cmTC_d21be] Error 1
make[1]: Leaving directory '/home/user/myProgs/inkscape/build/CMakeFiles/CMakeTmp'
Makefile:126: recipe for target 'cmTC_d21be/fast' failed
make: *** [cmTC_d21be/fast] Error 2
Я не мог найти никакой помощи от поиска в Интернете.
Любая помощь будет оценена.
Я пробовал компиляцию на Kubuntu 17.04 и Ubuntu 16.04 LTS
Есть некоторые недостающие зависимости, которые нужно установить, чтобы скомпилировать исходный код. Согласно вашим результатам cmake:
A required package was not found
Самый простой способ в Ubuntu (протестировано Kubuntu) — установить пакеты разработки Inkscape из репозитория ppa. Введите в терминале следующую команду и нажмите Enter:
sudo add-apt-repository ppa:inkscape.dev/trunk
После этого вам нужно включить репозиторий исходного кода. Попробуйте раскомментировать deb-src
линия. (Удалить # с начала):
sudo vim /etc/apt/sources.list.d/inkscape_dev-ubuntu-trunk-zesty.list
Теперь обновите список пакетов, используя sudo apt update
, Далее вы готовы установить пакеты для разработки:
sudo apt build-dep inkscape-trunk
Теперь все готово для компиляции и запуска;)
Других решений пока нет …