【发布时间】:2021-06-17 05:04:12
【问题描述】:
我正在使用Ubuntu 20.04.2 LTS。
我已经用命令下载了源代码:
git clone https://gitlab.com/inkscape/inkscape.git
然后,安装INSTALL.md中提到的依赖项:
对于常见的 linux 发行版(Ubuntu、Debian、Fedora),您可以使用a bash-script 用于获取所需的库。
然后,创建了一个名为build的文件夹:
cd inksape
mkdir build
然后:
cd build
sudo cmake ..
我得到了什么:
------------------------------
Building Makefile for Inkscape
------------------------------
Source Dir: /home/osama/inkscape
Binary Dir: /home/osama/inkscape/build
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.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
-- Creating build files in: /home/osama/inkscape/build
-- Performing Test LIBATOMIC_NOT_NEEDED
-- Performing Test LIBATOMIC_NOT_NEEDED - Success
-- 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;bdw-gc;lcms2'
-- Found harfbuzz, version 2.6.4
-- Found pangocairo, version 1.44.7
-- Found pangoft2, version 1.44.7
-- Found fontconfig, version 2.13.1
-- Found gsl, version 2.5
-- Found gmodule-2.0, version 2.64.6
-- Found libsoup-2.4, version 2.70.0
-- Found bdw-gc, version 7.6.4
-- Found lcms2, version 2.9
-- Found DoubleConversion: /usr/lib/x86_64-linux-gnu/libdouble-conversion.so
-- Performing Test Iconv_IS_BUILT_IN
-- Performing Test Iconv_IS_BUILT_IN - Success
-- Found Iconv: /usr/lib/x86_64-linux-gnu/libc.so
-- Found Intl: /usr/include
-- lib2geom not found, using internal copy in src/3rdparty/2geom
-- Checking for module 'poppler'
-- Found poppler, version 0.86.1
-- Found poppler: /usr/lib/x86_64-linux-gnu/libpoppler.so
-- Checking for module 'poppler-glib'
-- Found poppler-glib, version 0.86.1
-- Found poppler-glib: /usr/lib/x86_64-linux-gnu/libpoppler-glib.so
-- Checking for module 'cairo-svg'
-- Found cairo-svg, version 1.16.0
-- Found cairo-svg: /usr/lib/x86_64-linux-gnu/libcairo.so
-- Checking for module 'poppler-cairo'
-- Found poppler-cairo, version 0.86.1
-- Found poppler-cairo: /usr/lib/x86_64-linux-gnu/libcairo.so
-- Checking for modules 'libwpg-0.3;librevenge-0.0;librevenge-stream-0.0'
-- Found libwpg-0.3, version 0.3.3
-- Found librevenge-0.0, version 0.0.4
-- Found librevenge-stream-0.0, version 0.0.4
-- Checking for modules 'libvisio-0.1;librevenge-0.0;librevenge-stream-0.0'
-- Found libvisio-0.1, version 0.1.7
-- Found librevenge-0.0, version 0.0.4
-- Found librevenge-stream-0.0, version 0.0.4
-- Checking for modules 'libcdr-0.1;librevenge-0.0;librevenge-stream-0.0'
-- Found libcdr-0.1, version 0.1.6
-- Found librevenge-0.0, version 0.0.4
-- Found librevenge-stream-0.0, version 0.0.4
-- Found JPEG: /usr/lib/x86_64-linux-gnu/libjpeg.so (found version "80")
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11")
-- Found PNG: /usr/lib/x86_64-linux-gnu/libpng.so (found version "1.6.37")
-- Found Potrace: /usr/lib/x86_64-linux-gnu/libpotrace.so
-- Checking for modules 'gtkmm-3.0>=3.24;gdkmm-3.0>=3.24;gtk+-3.0>=3.24;gdk-3.0>=3.24'
-- Found gtkmm-3.0, version 3.24.2
-- Found gdkmm-3.0, version 3.24.2
-- Found gtk+-3.0, version 3.24.20
-- Found gdk-3.0, version 3.24.20
-- Checking for module 'gspell-1'
-- Found gspell-1, version 1.8.3
-- Using gspell
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found suitable version "1.71.0", minimum required is "1.19.0") found components: filesystem
-- Found LibXslt: /usr/lib/x86_64-linux-gnu/libxslt.so (found version "1.1.34")
-- Found LibXml2: /usr/lib/x86_64-linux-gnu/libxml2.so (found version "2.9.10")
-- Found OpenMP_C: -fopenmp (found version "4.5")
-- Found OpenMP_CXX: -fopenmp (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- Checking for module 'readline'
-- Found readline, version 8.0
-- Found GNU Readline:
-- Checking for module 'ImageMagick++<=7'
-- Found ImageMagick++, version 6.9.10
-- Found Gettext: /usr/bin/msgmerge (found version "0.19.8.1")
-- Found gettext + msgfmt to convert language files. Translation enabled
-- Found xgettext. inkscape.pot will be re-created if missing.
-- Checking for module 'sigc++-2.0'
-- Found sigc++-2.0, version 2.10.2
-- Found X11: /usr/include
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/libX11.so;/usr/lib/x86_64-linux-gnu/libXext.so - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- Creating build files in: /home/osama/inkscape/build
-- Looking for include file ieeefp.h
-- Looking for include file ieeefp.h - not found
-- Looking for mallinfo
-- Looking for mallinfo - found
-- Looking for include file malloc.h
-- Looking for include file malloc.h - found
-- Looking for include file stdint.h
-- Looking for include file stdint.h - found
-- Performing Test HAVE_STRUCT_MALLINFO_FORDBLKS
-- Performing Test HAVE_STRUCT_MALLINFO_FORDBLKS - Success
-- Performing Test HAVE_STRUCT_MALLINFO_FSMBLKS
-- Performing Test HAVE_STRUCT_MALLINFO_FSMBLKS - Success
-- Performing Test HAVE_STRUCT_MALLINFO_HBLKHD
-- Performing Test HAVE_STRUCT_MALLINFO_HBLKHD - Success
-- Performing Test HAVE_STRUCT_MALLINFO_UORDBLKS
-- Performing Test HAVE_STRUCT_MALLINFO_UORDBLKS - Success
-- Performing Test HAVE_STRUCT_MALLINFO_USMBLKS
-- Performing Test HAVE_STRUCT_MALLINFO_USMBLKS - Success
-- Looking for sincos
-- Looking for sincos - found
-- Generating header and sourcefiles from sp-marshal.list (Glib-Marshal)
INFO: Reading /home/osama/inkscape/src/helper/sp-marshal.list...
INFO: Reading /home/osama/inkscape/src/helper/sp-marshal.list...
-- sp-marshal.h changed; overwriting
CMake Error at src/3rdparty/CMakeLists.txt:9 (add_subdirectory):
The source directory
/home/osama/inkscape/src/3rdparty/2geom
does not contain a CMakeLists.txt file.
-- Found GTest: /usr/lib/x86_64-linux-gnu/libgtest.a
-- Creating link '/home/osama/inkscape/build/inkscape_datadir/inkscape' --> '/home/osama/inkscape/share'
INKSCAPE_DIST_PREFIX: inkscape-1.1-alpha_2021-03-19_eb24388f17
------------------------------------------------------------------------
Configuration Summary
------------------------------------------------------------------------
PROJECT_NAME: inkscape
INKSCAPE_VERSION: 1.1-alpha
INKSCAPE_DIST_PREFIX: inkscape-1.1-alpha_2021-03-19_eb24388f17
CMAKE_BINARY_DIR: /home/osama/inkscape/build
CMAKE_INSTALL_PREFIX: /usr/local
CMAKE_INSTALL_LIBDIR: lib
PACKAGE_LOCALE_DIR share/locale
CMAKE_SYSTEM_NAME: Linux
CMAKE_SYSTEM_VERSION: 5.8.0-45-generic
CMAKE_SYSTEM_PROCESSOR: x86_64
CMAKE_C_COMPILER: /usr/bin/cc
CMAKE_CXX_COMPILER: /usr/bin/c++
CMAKE_BUILD_TYPE: Release
ENABLE_LCMS: ON
ENABLE_POPPLER: ON
ENABLE_POPPLER_CAIRO: ON
WITH_GNU_READLINE: ON
WITH_DBUS: OFF
WITH_GSPELL: ON
WITH_IMAGE_MAGICK: ON
WITH_GRAPHICS_MAGICK: OFF
WITH_LIBCDR: ON
WITH_LIBVISIO: ON
WITH_LIBWPG: ON
WITH_NLS: ON
WITH_OPENMP: ON
WITH_JEMALLOC: OFF
WITH_INTERNAL_2GEOM: ON
WITH_PROFILING: OFF
BUILD_TESTING: ON
------------------------------------------------------------------------
-- Configuring incomplete, errors occurred!
See also "/home/osama/inkscape/build/CMakeFiles/CMakeOutput.log".
See also "/home/osama/inkscape/build/CMakeFiles/CMakeError.log".
CMakeFiles/CMakeError.log:
Determining if files ieeefp.h exist failed with the following output:
Change Dir: /home/osama/inkscape/build/CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/make cmTC_1eb11/fast && /usr/bin/make -f CMakeFiles/cmTC_1eb11.dir/build.make CMakeFiles/cmTC_1eb11.dir/build
make[1]: Entering directory '/home/osama/inkscape/build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_1eb11.dir/HAVE_IEEEFP_H.c.o
/usr/bin/cc -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/harfbuzz -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libsoup-2.4 -I/usr/include/libxml2 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/poppler -I/usr/include/libwpg-0.3 -I/usr/include/libwpd-0.10 -I/usr/include/librevenge-0.0 -I/usr/include/libvisio-0.1 -I/usr/include/libcdr-0.1 -I/usr/include/gtkmm-3.0 -I/usr/lib/x86_64-linux-gnu/gtkmm-3.0/include -I/usr/include/atkmm-1.6 -I/usr/include/gtk-3.0/unix-print -I/usr/include/gdkmm-3.0 -I/usr/lib/x86_64-linux-gnu/gdkmm-3.0/include -I/usr/include/giomm-2.4 -I/usr/lib/x86_64-linux-gnu/giomm-2.4/include -I/usr/include/pangomm-1.4 -I/usr/lib/x86_64-linux-gnu/pangomm-1.4/include -I/usr/include/glibmm-2.4 -I/usr/lib/x86_64-linux-gnu/glibmm-2.4/include -I/usr/include/cairomm-1.0 -I/usr/lib/x86_64-linux-gnu/cairomm-1.0/include -I/usr/include/sigc++-2.0 -I/usr/lib/x86_64-linux-gnu/sigc++-2.0/include -I/usr/include/gtk-3.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/atk-1.0 -I/usr/include/gio-unix-2.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gspell-1 -I/usr/include/enchant-2 -I/usr/include/readline -I/usr/include/x86_64-linux-gnu/ImageMagick-6 -I/usr/include/ImageMagick-6 -fopenmp -o CMakeFiles/cmTC_1eb11.dir/HAVE_IEEEFP_H.c.o -c /home/osama/inkscape/build/CMakeFiles/CheckIncludeFiles/HAVE_IEEEFP_H.c
/home/osama/inkscape/build/CMakeFiles/CheckIncludeFiles/HAVE_IEEEFP_H.c:2:10: fatal error: ieeefp.h: No such file or directory
2 | #include <ieeefp.h>
| ^~~~~~~~~~
compilation terminated.
make[1]: *** [CMakeFiles/cmTC_1eb11.dir/build.make:66: CMakeFiles/cmTC_1eb11.dir/HAVE_IEEEFP_H.c.o] Error 1
make[1]: Leaving directory '/home/osama/inkscape/build/CMakeFiles/CMakeTmp'
make: *** [Makefile:121: cmTC_1eb11/fast] Error 2
Source:
/* */
#include <ieeefp.h>
int main(void){return 0;}
CMakeFiles/CMakeOutput.log:
由于它很长,无法放入问题的正文中,因此输出为here。
为什么会出现此错误以及如何解决?
【问题讨论】:
-
您尝试自己构建inkscape的任何特殊原因,而不是输入单个命令,而是直接从Ubuntu的包存储库安装一个完全构建、完全配置的inkscape包,准备运行?
-
@SamVarshavchik 是的。我正在努力为该项目做出贡献。如果我无法构建它,我就无法贡献。
-
那么你可以直接去下载 Ubuntu 源码包,看看它是如何在 Ubuntu 上构建的? Ubuntu 的原生 inkscape 版本完全有可能包含一些编译它所需的补丁。或者,Ubuntu 的 inkscape 包构建脚本将显示在 Ubuntu 上构建此包所需的特定配置和编译步骤。
-
INSTALL.md 中的第一步是使用
--recurse-submodules选项克隆项目。这一步您似乎失败了,因为您在src/3rdparty 下没有目录2geom。而 CMake 错误正是关于这个目录:The source directory /home/osama/inkscape/src/3rdparty/2geom does not contain a CMakeLists.txt file. -
@Tsyvarev 非常感谢!这解决了问题。
标签: c++ linux cmake build inkscape