ubuntu 18.04编译OpenSCAD源代码

ubuntu 18.04编译OpenSCAD源代码,本意想研究一下如何加速 CGAL 的计算过程,目前还没完成。
 
编译过程如下:

$ git clone git://github.com/openscad/openscad.git

$ cd openscad

$ git submodule update --init

# 每次重新编译,都需要先执行此脚本,否则会出现环境变量设置问题
$ sudo ./scripts/uni-get-dependencies.sh

# #include <Qsci/qsciglobal.h>
$ sudo apt-get install libqscintilla2-dev

$ sudo apt-get install libqscintilla2-qt5-dev

# 大量软件被卸载,但是可惜的是,如果不卸载 libpulse0 没办法安装 libpulse-dev
# 不安装 libpulse-dev 就没办法安装 qtmultimedia5-dev
$ sudo apt-get remove libpulse0

$ sudo apt-get install libpulse-dev

# Project ERROR: Unknown module(s) in QT: multimedia
$ sudo apt-get install qtmultimedia5-dev

# 如果安装过 anaconda 则要在路径中去除 anaconda,否则会出现编译问题
$ qmake openscad.pro

$ make

遇到两个难点,第一个难点是报错

Project ERROR: Unknown module(s) in QT: multimedia

为了解决这个问题,需要安装 qtmultimedia5-dev,但是安装的时候报告如下错误:

$ sudo apt-get install qtmultimedia5-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:

下列软件包有未满足的依赖关系:
 qtmultimedia5-dev : 依赖: libpulse-dev 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

根据错误,我们手工安装 libpulse-dev , 结果继续报告如下错误:

$ sudo apt-get install libpulse-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:

下列软件包有未满足的依赖关系:
 libpulse-dev : 依赖: libpulse0 (= 1:11.1-1ubuntu7.4) 但是 1:11.1-1ubuntu7.5 正要被安装
                依赖: libpulse-mainloop-glib0 (= 1:11.1-1ubuntu7.4) 但是 1:11.1-1ubuntu7.5 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

这个原因是官方软件源依赖导致的问题,我们需要卸载 libpulse0 , 然后通过安装 libpulse-dev 的办法引入 libpulse0, 从而解决依赖问题。但是这个库非常基础,会引起大量软件包被卸载。所以,我们需要再次安装被卸载的软件包。

如下:

$ sudo apt-get remove libpulse0
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
下列软件包是自动安装的并且现在不需要了:
  cpu-checker docutils-common docutils-doc espeak-ng-data fonts-elusive-icons
  fonts-font-awesome fonts-mathjax freepats gimp-data
  gir1.2-accountsservice-1.0 gir1.2-gck-1 gir1.2-gcr-3 gir1.2-gdesktopenums-3.0
  gir1.2-gdm-1.0 gir1.2-geoclue-2.0 gir1.2-gnomedesktop-3.0 gir1.2-gweather-3.0
  gir1.2-mutter-2 gir1.2-nm-1.0 gir1.2-nma-1.0 gir1.2-rsvg-2.0
  gir1.2-upowerglib-1.0 gjs gnome-control-center-faces gnome-online-accounts
  gnome-shell-common gnome-themes-extra gnome-themes-extra-data
  gtk2-engines-pixbuf gtk3-nocsd ipxe-qemu ipxe-qemu-256k-compat-efi-roms
  liba52-0.7.4 libamd2 libaribb24-0 libass9 libbabl-0.1-0
  libbasicusageenvironment1 libbs2b0 libcacard0 libcamd2 libccolamd2 libcddb2
  libchamplain-0.12-0 libchamplain-gtk-0.12-0 libcholmod3 libcolord-gtk1
  libdca0 libde265-0 libdvbpsi10 libebml4v5 libfaad2 libfcitx-config4 libfdt1
  libflite1 libfreerdp-common1.1.0 libfreerdp-utils1.1 libfreerdp2-2 libgadu3
  libgdm1 libgeonames-common libgeonames0 libgimp2.0 libgjs0g libgroupsock8
  libgsoap-2.8.60 libgstreamer-plugins-bad1.0-0 libgtk3-nocsd0 libgtkmm-3.0-1v5
  libiscsi7 libjs-mathjax libjs-sphinxdoc libjs-underscore libkate1 liblilv-0-0
  liblivemedia62 libluajit-5.1-2 libluajit-5.1-common libmad0 libmatroska6v5
  libmetis5 libmicrodns0 libmjpegutils-2.1-0 libmms0 libmodplug1 libmozjs-52-0
  libmpcdec6 libmpeg2-4 libmpeg2encpp-2.1-0 libmplex2-2.1-0 libmutter-2-0
  libnfs11 libnorm1 libnss-myhostname libofa0 libopenal-data libopenal1
  libopenmpt-modplug1 libpgm-5.2-0 libplacebo4 libpostproc54 libprotobuf-c1
  libproxy-tools libpython-all-dev libqt5designer5 libqt5help5 libqt5x11extras5
  librbd1 libresid-builder0c2a libserd-0-0 libsidplay2 libsodium23 libsord-0-0
  libsoundtouch1 libspandsp2 libsratom-0-0 libsrtp2-1 libssh2-1 libsysmetrics1
  libumfpack5 libupnp6 libusageenvironment3 libusbredirparser1 libva-wayland2
  libvlc-bin libvlc5 libvlccore9 libvo-aacenc0 libvo-amrwbenc0
  libwebrtc-audio-processing1 libwildmidi-config libwildmidi2 libwinpr-crt0.1
  libwinpr-environment0.1 libwinpr-file0.1 libwinpr-handle0.1 libwinpr-heap0.1
  libwinpr-interlocked0.1 libwinpr-library0.1 libwinpr-path0.1
  libwinpr-synch0.1 libwinpr-sysinfo0.1 libwinpr-thread0.1 libwinpr-utils0.1
  libwinpr2-2 libxcb-res0 libxen-4.9 libxenstore3.0 libzbar0 libzmq5 mercurial
  mercurial-common msr-tools mutter-common openjdk-8-jdk-headless pandoc
  pandoc-data pidgin-data pyflakes pyflakes3 pylint python-alabaster python-all
  python-all-dev python-astroid python-babel python-babel-localedata
  python-backports-abc python-backports-shutil-get-terminal-size
  python-backports.functools-lru-cache python-bleach python-cloudpickle
  python-concurrent.futures python-configparser python-dateutil
  python-decorator python-docutils python-egenix-mxdatetime
  python-egenix-mxtools python-entrypoints python-functools32 python-imagesize
  python-ipykernel python-ipython python-ipython-genutils python-isort
  python-jedi python-jinja2 python-jsonschema python-jupyter-client
  python-jupyter-core python-keyring python-keyrings.alt
  python-lazy-object-proxy python-logilab-common python-markupsafe
  python-mccabe python-mistune python-nbconvert python-nbformat python-numpydoc
  python-pandocfilters python-parso python-pathlib2 python-pickleshare
  python-pip python-pip-whl python-prompt-toolkit python-psutil
  python-pycodestyle python-pyflakes python-pygments python-pyqt5
  python-pyqt5.qtopengl python-pyqt5.qtsvg python-pyqt5.qtwebkit
  python-qtawesome-common python-qtconsole python-roman python-rope
  python-scandir python-secretstorage python-simplegeneric
  python-singledispatch python-sphinx python-testpath python-tornado
  python-traitlets python-typing python-tz python-wcwidth python-wheel
  python-wrapt python-zmq python3-macaroonbakery python3-nacl python3-protobuf
  python3-pyflakes python3-pymacaroons python3-rfc3339 python3-tz
  qemu-block-extra qemu-system-common qemu-utils seabios session-shortcuts
  sound-icons sphinx-common spyder-common virtualbox-dkms vlc-bin vlc-data
  vlc-l10n vlc-plugin-notify vlc-plugin-qt vlc-plugin-samba vlc-plugin-skins2
  vlc-plugin-video-output vlc-plugin-video-splitter vlc-plugin-visualization
  xwayland
使用'sudo apt autoremove'来卸载它(它们)。
下列软件包将被【卸载】:
  empathy gdm3 gimp gnome-control-center gnome-initial-setup gnome-orca
  gnome-settings-daemon gnome-shell gstreamer1.0-plugins-bad
  gstreamer1.0-pulseaudio indicator-bluetooth indicator-sound
  libasound2-plugins libcanberra-pulse libespeak-ng1 libespeak1
  libfarstream-0.2-5 libfluidsynth1 libfreerdp-client2-2
  libfreerdp-plugins-standard libgegl-0.3-0 libpcaudio0 libpulse-mainloop-glib0
  libpulse0 libpulsedsp libpurple-bin libpurple0 libqt5multimedia5
  libqt5multimediawidgets5 libsdl-image1.2 libsdl1.2debian
  libtelepathy-farstream3 mutter openjdk-8-jdk openjdk-8-jre orca pavucontrol
  pulseaudio pulseaudio-module-bluetooth pulseaudio-utils
  python-pyqt5.qtmultimedia python-qtawesome python-qtpy python-spyder qemu-kvm
  qemu-system-x86 remmina-plugin-rdp speech-dispatcher
  speech-dispatcher-audio-plugins speech-dispatcher-espeak-ng spyder
  telepathy-haze ubuntu-desktop ubuntu-session unity unity-control-center
  unity-greeter unity-session unity-settings-daemon virtualbox virtualbox-qt
  vlc vlc-plugin-base
升级了 0 个软件包,新安装了 0 个软件包,要卸载 63 个软件包,有 0 个软件包未被升级。
解压缩后将会空出 238 MB 的空间。
您希望继续执行吗? [Y/n] 
(正在读取数据库 ... 系统当前共安装有 317991 个文件和目录。)
正在卸载 empathy (3.25.90+really3.12.14-0ubuntu1) ...
正在卸载 ubuntu-desktop (1.417.4) ...
正在卸载 gdm3 (3.28.3-0ubuntu18.04.4) ...
正在卸载 gimp (2.8.22-1) ...
正在卸载 unity-control-center (15.04.0+18.04.20180216-0ubuntu1) ...
正在卸载 gnome-initial-setup (3.28.0-2ubuntu6.16.04.6) ...
正在卸载 gnome-orca (3.28.0-3ubuntu1) ...
正在卸载 ubuntu-session (3.28.1-0ubuntu3) ...
正在卸载 gnome-shell (3.28.4-0ubuntu18.04.3) ...
正在卸载 mutter (3.28.4-0ubuntu18.04.2) ...
update-alternatives: 使用 /usr/bin/xfwm4 来在自动模式中提供 /usr/bin/x-window-manager (x-window-manager)
正在卸载 libtelepathy-farstream3:amd64 (0.6.2-1build1) ...
正在卸载 telepathy-haze (0.8.0-2.1) ...
正在卸载 gstreamer1.0-pulseaudio:amd64 (1.14.5-0ubuntu1~18.04.1) ...
正在卸载 indicator-sound (12.10.2+18.04.20180420.3-0ubuntu1) ...
正在卸载 pulseaudio-module-bluetooth (1:11.1-1ubuntu7.5) ...
正在卸载 libcanberra-pulse:amd64 (0.30-5ubuntu1) ...
正在卸载 pulseaudio (1:11.1-1ubuntu7.5) ...
正在卸载 libasound2-plugins:amd64 (1.1.1-1ubuntu1) ...
正在卸载 speech-dispatcher-espeak-ng (0.8.8-1ubuntu1) ...
正在卸载 libespeak-ng1:amd64 (1.49.2+dfsg-1) ...
正在卸载 libespeak1:amd64 (1.48.04+dfsg-5) ...
正在卸载 remmina-plugin-rdp:amd64 (1.2.0-rcgit.29+dfsg-1ubuntu1) ...
正在卸载 libfreerdp-client2-2:amd64 (2.0.0~git20170725.1.1648deb+dfsg1-7ubuntu0.1) ...
正在卸载 libfreerdp-plugins-standard:amd64 (1.1.0~git20140921.1.440916e+dfsg1-15ubuntu1.18.04.1) ...
正在卸载 libgegl-0.3-0:amd64 (0.3.30-1ubuntu1) ...
正在卸载 libpcaudio0 (1.0-1) ...
正在卸载 unity-session (3.28.1-0ubuntu3) ...
正在卸载 unity (7.5.0+18.04.20190304-0ubuntu1) ...
正在卸载 unity-greeter (18.04.0+18.04.20180314.1-0ubuntu2) ...
正在卸载 unity-settings-daemon (15.04.1+18.04.20180413-0ubuntu1.2) ...
正在卸载 pavucontrol (3.0-4) ...
正在卸载 pulseaudio-utils (1:11.1-1ubuntu7.5) ...
正在卸载 libpulsedsp:amd64 (1:11.1-1ubuntu7.5) ...
正在卸载 libpurple-bin (1:2.12.0-1ubuntu4) ...
正在卸载 spyder (3.2.6+dfsg1-2) ...
正在卸载 python-spyder (3.2.6+dfsg1-2) ...
正在卸载 python-qtawesome (0.4.4+ds1-1) ...
正在卸载 python-qtpy (1.3.1-1build1) ...
正在卸载 python-pyqt5.qtmultimedia (5.10.1+dfsg-1ubuntu2) ...
正在卸载 libqt5multimediawidgets5:amd64 (5.9.5-0ubuntu1) ...
正在卸载 libqt5multimedia5:amd64 (5.9.5-0ubuntu1) ...
正在卸载 vlc (3.0.8-0ubuntu18.04.1) ...
正在卸载 vlc-plugin-base:amd64 (3.0.8-0ubuntu18.04.1) ...
正在卸载 libsdl-image1.2:amd64 (1.2.12-8ubuntu0.1) ...
正在卸载 virtualbox-qt (5.2.34-dfsg-0~ubuntu18.04.1) ...
正在卸载 virtualbox (5.2.34-dfsg-0~ubuntu18.04.1) ...
正在卸载 qemu-kvm (1:2.11+dfsg-1ubuntu7.23) ...
正在卸载 qemu-system-x86 (1:2.11+dfsg-1ubuntu7.23) ...
正在卸载 libsdl1.2debian:amd64 (1.2.15+dfsg2-0.1ubuntu0.1) ...
正在卸载 openjdk-8-jdk:amd64 (8u242-b08-0ubuntu3~18.04) ...
正在卸载 openjdk-8-jre:amd64 (8u242-b08-0ubuntu3~18.04) ...
正在卸载 orca (3.28.0-3ubuntu1) ...
正在卸载 speech-dispatcher (0.8.8-1ubuntu1) ...
正在卸载 speech-dispatcher-audio-plugins:amd64 (0.8.8-1ubuntu1) ...
正在卸载 indicator-bluetooth (0.0.6+17.10.20170605-0ubuntu3) ...
正在卸载 gnome-control-center (1:3.28.2-0ubuntu0.18.04.6) ...
正在卸载 gnome-settings-daemon (3.28.1-0ubuntu1.3) ...
正在卸载 libpurple0 (1:2.12.0-1ubuntu4) ...
正在卸载 libfarstream-0.2-5:amd64 (0.2.8-4.1~build1) ...
正在卸载 gstreamer1.0-plugins-bad:amd64 (1.14.5-0ubuntu1~18.04.1) ...
正在卸载 libfluidsynth1:amd64 (1.1.9-1) ...
正在卸载 libpulse-mainloop-glib0:amd64 (1:11.1-1ubuntu7.5) ...
正在卸载 libpulse0:amd64 (1:11.1-1ubuntu7.5) ...
正在处理用于 mime-support (3.60ubuntu1) 的触发器 ...
正在处理用于 desktop-file-utils (0.23-1ubuntu3.18.04.2) 的触发器 ...
正在处理用于 install-info (6.5.0.dfsg.1-2) 的触发器 ...
正在处理用于 libglib2.0-0:amd64 (2.56.4-0ubuntu0.18.04.6) 的触发器 ...
正在处理用于 bamfdaemon (0.5.3+18.04.20180207.2-0ubuntu1) 的触发器 ...
Rebuilding /usr/share/applications/bamf-2.index...
正在处理用于 libc-bin (2.27-3ubuntu1) 的触发器 ...
正在处理用于 libvlc-bin:amd64 (3.0.8-0ubuntu18.04.1) 的触发器 ...
正在处理用于 man-db (2.8.3-2ubuntu0.1) 的触发器 ...
正在处理用于 shared-mime-info (1.9-2) 的触发器 ...
正在处理用于 gnome-menus (3.13.3-11ubuntu1.1) 的触发器 ...
正在处理用于 hicolor-icon-theme (0.17-2) 的触发器 ...
正在处理用于 gconf2 (3.2.6-4ubuntu1) 的触发器 ...
根据上面的卸载记录,重新安装卸载的软件包,如下:

$ sudo apt-get install empathy gdm3 gimp gnome-control-center gnome-initial-setup gnome-orca gnome-settings-daemon gnome-shell gstreamer1.0-plugins-bad gstreamer1.0-pulseaudio indicator-bluetooth indicator-sound libasound2-plugins libcanberra-pulse libespeak-ng1 libespeak1 libfarstream-0.2-5 libfluidsynth1 libfreerdp-client2-2 libfreerdp-plugins-standard libgegl-0.3-0 libpcaudio0 libpulse-mainloop-glib0 libpulse0 libpulsedsp libpurple-bin libpurple0 libqt5multimedia5 libqt5multimediawidgets5 libsdl-image1.2 libsdl1.2debian libtelepathy-farstream3 mutter openjdk-8-jdk openjdk-8-jre orca pavucontrol pulseaudio pulseaudio-module-bluetooth pulseaudio-utils python-pyqt5.qtmultimedia python-qtawesome python-qtpy python-spyder qemu-kvm qemu-system-x86 remmina-plugin-rdp speech-dispatcher speech-dispatcher-audio-plugins speech-dispatcher-espeak-ng spyder telepathy-haze ubuntu-desktop ubuntu-session unity unity-control-center unity-greeter unity-session unity-settings-daemon virtualbox virtualbox-qt vlc vlc-plugin-base

第二个就是 anaconda 导致的编译问题,如果路径中存在 anaconda , qmake在搜索软件依赖的时候会把路径设置错误,导致编译运行异常。

参考链接


发布者

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注