如何解决错误:在构建inkscape时找不到<ieeefp.h>
我正在使用 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
-- 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 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。
为什么会出现此错误以及如何解决?
解决方法
inkskape documentation about your question 中有一个特定的部分
主要步骤:
wget -v https://gitlab.com/inkscape/inkscape-ci-docker/-/raw/master/install_dependencies.sh -O install_dependencies.sh
bash install_dependencies.sh --recommended
之后:
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=${PWD}/install_dir -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
make -j8
make install
开源软件在编译期间必须发出不同的标志是很常见的。 (-j8 中的 8 是笔记本电脑中的内核数。如果有 4 个内核,则为 -j4,如果有 16 个,则为 -j16)
这就是发明 sudo apt-get install inkskape
命令让用户省心的原因之一。
如果这不起作用,那就是一个错误。
您只会在 irc/matrix chatrooms 大多数开源项目都有用于开发的 irc/freenode 聊天室
,我错过了 INSTALL.md
中的这一部分:
确保在获取代码时获得了子模块代码(或者 按照建议在 git clone 命令上使用 --recurse-submodules 在入门页面上,或通过运行 git submodule init && git 子模块更新)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。