在 Ubuntu 20.04 上安装 Spectrum3D

在 Ubuntu 20.04 上安装 Spectrum3D

尝试安装 Spectrum3D 音频可视化工具。我尝试按照安装说明操作,确保我有依赖项等,但安装失败,提示“未找到 make”Bash 命令。我搜索并安装了“make”和“build-essential”,然后继续安装,但出现了另一个错误。此外,我搜索后发现我需要安装一些依赖项 - libgstreamer-gl1.0-0 就是其中之一。然而在此之前,Ubuntu 说明在查找“libstreamer0.10-dev”时失败

我可以运行./configure,并且成功。

现在执行“make”命令后仍然挂起。

这是错误

Making all in src
   make[1]: Entering directory '/home/jon/Downloads/spectrum3d-2.7.2/src'
   make  all-am
make[2]: Entering directory '/home/jon/Downloads/spectrum3d-2.7.2/src'
gcc  -g -O2 -pthread -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/gtk-3.0 -I/usr/include/gio-unix-2.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -I/usr/include/harfbuzz -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/x86_64-linux-gnu -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 -pthread -I/usr/include/gstreamer-1.0 -I/usr/include/x86_64-linux-gnu -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include   -o spectrum3d display.o events.o equalizer.o gstreamer.o main.o menu.o onclick.o preferences.o record.o scale.o typesource.o  -lGLU -lGL -lSDL2  -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0
/usr/bin/ld: events.o:/home/jon/Downloads/spectrum3d-2.7.2/src/events.h:22: multiple definition of `X'; display.o:/home/jon/Downloads/spectrum3d-2.7.2/src/display.h:24: first defined here

(剪切 - 文件太长,无法全部发布)

/usr/bin/ld: typesource.o:/home/jon/Downloads/spectrum3d-2.7.2/src/typesource.h:5: multiple definition of `newEvent'; display.o:/home/jon/Downloads/spectrum3d-2.7.2/src/display.h:20: first defined here
/usr/bin/ld: typesource.o:/home/jon/Downloads/spectrum3d-2.7.2/src/typesource.c:32: multiple definition of `timer'; gstreamer.o:/home/jon/Downloads/spectrum3d-2.7.2/src/gstreamer.c:38: first defined here
/usr/bin/ld: typesource.o:/home/jon/Downloads/spectrum3d-2.7.2/src/typesource.h:10: multiple definition of `loop'; gstreamer.o:/home/jon/Downloads/spectrum3d-2.7.2/src/gstreamer.h:26: first defined here
/usr/bin/ld: typesource.o:/home/jon/Downloads/spectrum3d-2.7.2/src/typesource.h:7: multiple definition of `spect_bands'; display.o:/home/jon/Downloads/spectrum3d-2.7.2/src/display.h:22: first defined here
/usr/bin/ld: typesource.o:/home/jon/Downloads/spectrum3d-2.7.2/src/typesource.h:6: multiple definition of `tmpPath'; gstreamer.o:/home/jon/Downloads/spectrum3d-2.7.2/src/gstreamer.h:21: first defined here
 collect2: error: ld returned 1 exit status
    make[2]: *** [Makefile:358: spectrum3d] Error 1
    make[2]: Leaving directory '/usr/local/spectrum3d-2.7.2/src'
    make[1]: *** [Makefile:265: all] Error 2
    make[1]: Leaving directory '/usr/local/spectrum3d-2.7.2/src'
    make: *** [Makefile:340: all-recursive] Error 1

因此,我找到了一个脚本来删除并重新安装我创建并运行的“make”,并且安装成功。我检查过是否安装了“Automake”。似乎我拥有所有依赖项。

现在,根据程序中包含的说明,我可以配置安装,但是当我运行“make”时,出现上述错误。

查看输出,在到达如上所示的结束之前没有任何错误,大部分只是说“xxx 首先在这里定义”

Spectrum3D 是一个旧程序,上次更新是4年前。

我在网上尝试了一些解决方案,并在 Ubuntu 网站上找到了一个,但不幸的是,这些说明对我没有用。

链接在这里:在 ubuntu 上安装 spectrum3d

谁能告诉我它太旧了并且不受支持而无法正常工作。

答案1

所以最终的答案是——

在全新安装时按照安装说明安装所有列出的库,包括可选的“Jack”库。

我运行了这些命令(取自其他帖子)-

sudo apt-get install aptitude

sudo aptitude install build-essential libgtk-3-dev libgstreamer0.10-dev libsdl1.2-dev

找不到“libstreamer0.10-dev”,我忽略了它。

然后我使用 Synaptic 管理器安装“gstreamer-bad-plugins”,并注意到大多数其他相关插件都已安装(除了 RTP 和 CV 或 QT 插件之外,与 gstreamer 有关的任何插件)。

我在下载的 spectrum3d 文件夹中打开了一个终端,然后运行 ​​-

sudo ./configure CFLAGS=-fcommon

sudo make

sudo make install

一切正常,安装正确,应用程序菜单中的图标和应用程序似乎都按预期工作。

非常感谢steeldriver的帮助。

答案2

我只想指出,在 Ubuntu 22.04 上,@steeldriver 在评论中提供的解决方案对我有用。而不是./configure使用

./configure CFLAGS=-fcommon

这就是我需要做的一切。

相关内容