简体   繁体   English

从源代码编译Inkscape时出错

[英]Error while compiling Inkscape from source code

Not having well knowledge on dealing with C++ projects, I have downloaded the source code of Inkscape from its GitLab repository and made few changes (adding small feature) and tried to compile based on the instruction provided in INSTALL.md and other sources available on their website. 我没有很好的处理C ++项目的知识,我从它的GitLab存储库下载了Inkscape的源代码并进行了一些更改(添加小功能)并尝试根据INSTALL.md中提供的指令和其他可用的源代码进行编译。网站。

While it seems I have all the dependencies installed on the system, I get this result after running cmake in build folder: 虽然我似乎已经在系统上安装了所有依赖项,但是在构建文件夹中运行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".

The relevant lines in DefineDependsandFlags.cmake:42 are: DefineDependsandFlags.cmake:42中的相关行是:

pkg_check_modules(INKSCAPE_DEP REQUIRED
              harfbuzz
              pangocairo
          pangoft2
          fontconfig
          gsl
          gmodule-2.0
          libsoup-2.4>=2.42)

As far as I checked, all these packages are already installed on my system. 据我检查,所有这些软件包已经安装在我的系统上。

Here is the content of CMakeError.log in which these lines might gives some clue: 以下是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 

I couldn't find any help from searching in Internet. 我在网上找不到任何帮助。
Any help would be appreciated. 任何帮助,将不胜感激。


I have tried compilation on both Kubuntu 17.04 and Ubuntu 16.04 LTS 我已尝试在Kubuntu 17.04和Ubuntu 16.04 LTS上进行编译

There are some missing dependencies you need to install in order to compile the source code. 为了编译源代码,您需要安装一些缺少的依赖项。 According to your cmake results: 根据你的cmake结果:

A required package was not found

The easiest way in Ubuntu (Kubuntu tested) is to install Inkscape development packages from the ppa repository. 在Ubuntu(Kubuntu测试)中最简单的方法是从ppa存储库安装Inkscape开发包。 Type the following command in terminal then hit Enter: 在终端中键入以下命令,然后按Enter键:

sudo add-apt-repository ppa:inkscape.dev/trunk

After that you need to enable source code repository. 之后,您需要启用源代码存储库。 Try to uncomment deb-src line. 尝试取消注释deb-src行。 (Remove # from the beginning): (从头开始删除#):

sudo vim /etc/apt/sources.list.d/inkscape_dev-ubuntu-trunk-zesty.list
  • Note that you can use your favorite text editor instead of vim. 请注意 ,您可以使用自己喜欢的文本编辑器而不是vim。

Now update the list of packages using sudo apt update . 现在使用sudo apt update软件包列表。 Next you're ready to install the development packages: 接下来,您已准备好安装开发包:

sudo apt build-dep inkscape-trunk

Now it's all set to compile and run ;) 现在它已经设置为编译并运行;)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM