1

Trying to install Spectrum3D audio visualizer. I tried to follow install instructions, made sure I had dependencies etc, but it failed with 'make' Bash command not found. I searched and installed 'make' and 'build-essential' then the installation went further, but I had another error. Furthermore, I searched and found I needed to install some dependencies - libgstreamer-gl1.0-0 was one of them. However before that the Ubuntu instructions failed on finding 'libstreamer0.10-dev'

I can run ./configure and its successful.

Now keep getting hung up after executing the 'make' command.

This is the error

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

(cut - file to long to post all)

/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

So, I found a script to remove and re-install 'make' which I created and ran, and it installed ok. I've checked I have 'Automake' installed. Seems I have all dependencies.

Now with the instructions included in the program, I can configure the installation OK, but when I run 'make' I get the error above.

Looking through the output there are no errors before it gets to the end as shown above, mostly just says 'xxx first defined here'

Spectrum3D is an old program that was last updated 4 years ago.

I've tried a few solutions online, found one here on the Ubuntu site, but unfortunately the instructions haven't worked for me.

Link here: install spectrum3d on ubuntu

Can anyone tell me it's too old and unsupported to get working properly.

pi3141
  • 11
  • 2
  • That's really not a large enough part of the output to determine the problem - in particular, we need to see some lines **before** what you've shown to see **why** `ld returned 1 exit status` – steeldriver Apr 26 '22 at 22:49
  • Hi, I created a VM with Ubuntu14.04 and using the instructions supplied by Ubuntu in the other question about this program, linked above, Spectrum3D installed successfully. It runs but I can't make it work at the moment - nothing displayed when I run a file, but if I can get it working, is it possible to create a package from that system to copy over to Ubuntu20.04 ? – pi3141 Apr 28 '22 at 09:47
  • 1
    Building it on 20.04 may just be a matter of adding `-fcommon` to the CFLAGS during configuration ex. `./configure CFLAGS=-fcommon` - see for example [Porting to GCC 10](https://gcc.gnu.org/gcc-10/porting_to.html) – steeldriver Apr 28 '22 at 11:56
  • Thanks - I tried that, but it didn't work. – pi3141 Apr 28 '22 at 18:43
  • Funny - it worked for me when I tried it on 21.04. Did you remember to `make clean` in between (otherwise you are just re-linking the previously compiled object files)? – steeldriver Apr 28 '22 at 20:30
  • Thanks again - I didn't try 'Make Clean' but just have and the install goes through without errors!! Yay! However when I run the prog I get an error - "RC file doesn't exist or cannot be open; this is normal if your running spectrum3d for first time' So I ran it again but got same error. - Nearly there!! – pi3141 Apr 29 '22 at 08:08
  • Its working - thank you. I've changed my system, now I've dedicated what was my Linux disc for a VM storage disc. So I reinstalled Ubuntu 20.04 as a VM, updated, followed the install instructions to add all packages I could find in Synaptic, used 'sudo ./configure CFLAGS=-fcommon' then 'sudo make' and 'sudo make install' and now its all working. Fantastic - thanks steeldriver! – pi3141 Apr 29 '22 at 14:16
  • OK thanks for the update - I will try to find time to post a brief answer in case others with the same issue find your question (comments sometimes get deleted) – steeldriver Apr 29 '22 at 14:22

2 Answers2

0

So the final answer was -

On a fresh install Follow install instructions and install all libraries listed, including optional 'Jack' libraries.

I ran these commands (taken from other post) -

sudo apt-get install aptitude

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

Couldn't find 'libstreamer0.10-dev' I ignored it.

Then I used Synaptic manager to install 'gstreamer-bad-plugins' and noted most other relevant plugins were installed (anything to do with gstreamer except RTP and CV or QT plugins stuff.)

I opened a terminal in the spectrum3d folder in my downloads and ran -

sudo ./configure CFLAGS=-fcommon

sudo make

sudo make install

It all worked, installed correctly, icon in applications menu, and app seems to work as expected.

Big thanks to steeldriver for the help.

Adam
  • 1,723
  • 1
  • 5
  • 10
pi3141
  • 11
  • 2
  • There is no point of running `./configure` and `make` as `sudo` (in fact, doing so may cause issues). They all create files locally. `make install` only requires `sudo` because it copies the complied binaries to system-wide folders. – Neinstein Jun 22 '23 at 20:09
0

I just want to point out that on Ubuntu 22.04, the solution provided by @steeldriver in the comments was working for me. Instead of ./configure, use

./configure CFLAGS=-fcommon

That was all I needed to do.

Neinstein
  • 125
  • 1
  • 8
  • @steeldriver, feel free to convert your comment to an answer, if you do, let me know and I'll delete mine. Thanks for the solution! This problem seemed so obscure I had no hope to find anything when I started searching. – Neinstein Jun 22 '23 at 20:07