尝试安装 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
这就是我需要做的一切。