从源代码编译Inkscape时出错 [英] Error while compiling Inkscape from source code

查看:77
本文介绍了从源代码编译Inkscape时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对C ++项目没有足够的了解,因此我从其 Inkscape 的源代码.="https://gitlab.com/inkscape/inkscape" rel ="nofollow noreferrer"> GitLab存储库,并进行了少量更改(添加了小功能),并尝试根据 INSTALL.md 及其网站上的其他来源.

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.

虽然似乎我已经在系统上安装了所有依赖项,但是在build文件夹中运行cmake之后我得到了以下结果:

While it seems I have all the dependencies installed on the system, I get this result after running cmake in build folder:

------------------------------
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中的相关行是:

The relevant lines in DefineDependsandFlags.cmake:42 are:

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.

以下是 CMakeError.log 的内容,其中这些行可能会提供一些线索:

Here is the content of CMakeError.log in which these lines might gives some clue:

/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 

在Internet上搜索找不到任何帮助.
任何帮助,将不胜感激.

I couldn't find any help from searching in Internet.
Any help would be appreciated.

我已经尝试在Kubuntu 17.04和Ubuntu 16.04 LTS上进行编译

I have tried compilation on both Kubuntu 17.04 and Ubuntu 16.04 LTS

推荐答案

您需要安装一些缺少的依赖项才能编译源代码.根据您的cmake结果:

There are some missing dependencies you need to install in order to compile the source code. According to your cmake results:

A required package was not found

在Ubuntu(经Kubuntu测试)中,最简单的方法是从ppa存储库安装Inkscape开发包.在终端中键入以下命令,然后按Enter:

The easiest way in Ubuntu (Kubuntu tested) is to install Inkscape development packages from the ppa repository. Type the following command in terminal then hit Enter:

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

之后,您需要启用源代码存储库.尝试取消注释 deb-src 行.(从头开始删除#):

After that you need to enable source code repository. Try to uncomment deb-src line. (Remove # from the beginning):

sudo vim /etc/apt/sources.list.d/inkscape_dev-ubuntu-trunk-zesty.list

  • 注意,您可以使用自己喜欢的文本编辑器代替vim.
    • Note that you can use your favorite text editor instead of vim.
    • 现在使用 sudo apt update 更新软件包列表.接下来,您准备安装开发包:

      Now update the list of packages using 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 ;)

      这篇关于从源代码编译Inkscape时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆