Compiling Audacity for SuseINUX 10.1

  • I am trying to compile audacity-src-1.3.0b-beta on SuseLINUX 10.1 with KDE desktop.
    >
    Configure was successful with command:


    ./configure --with-portaudio=v19 --without-portmixer --with-lib-preference=system,local


    Error returned on make, "./../include/SoundTouch.h:149: error: extra
    qualification 'soundtouch::SoundTouch::' on member 'getVersionId'"


    The full outout text on make is:


    > linux-1:/usr/src/packages/SOURCES/audacity-src-1.3.0b-beta # make
    > make -C lib-src
    > make[1]: Entering directory
    > `/usr/src/packages/SOURCES/audacity-src-1.3.0b-beta/lib-src'
    > make -C libresample
    > make[2]: Entering directory
    > `/usr/src/packages/SOURCES/audacity-src-1.3.0b-beta/lib-src/libresample'
    > gcc -c -g -O2 -Wall src/resample.c -o src/resample.c.o
    > gcc -c -g -O2 -Wall src/resamplesubs.c -o src/resamplesubs.c.o
    > gcc -c -g -O2 -Wall src/filterkit.c -o src/filterkit.c.o
    > /usr/bin/ar ruv libresample.a src/resample.c.o src/resamplesubs.c.o
    > src/filterkit.c.o
    > /usr/bin/ar: creating libresample.a
    > a - src/resample.c.o
    > a - src/resamplesubs.c.o
    > a - src/filterkit.c.o
    > ranlib libresample.a
    > gcc -o tests/testresample \
    > -g -O2 -Wall ./tests/testresample.c \
    > libresample.a -lm
    > gcc -o tests/resample-sndfile \
    > -g -O2 -Wall ./tests/resample-sndfile.c \
    > libresample.a -lsndfile -lm
    > gcc -o tests/compareresample \
    > -g -O2 -Wall ./tests/compareresample.c \
    > libresample.a -lsamplerate -lm
    > make[2]: Leaving directory
    > `/usr/src/packages/SOURCES/audacity-src-1.3.0b-beta/lib-src/libresample'
    > ln -sf libresample/libresample.a libresample.a
    > make -C soundtouch
    > make[2]: Entering directory
    > `/usr/src/packages/SOURCES/audacity-src-1.3.0b-beta/lib-src/soundtouch'
    > Making all in include
    > make[3]: Entering directory
    > `/usr/src/packages/SOURCES/audacity-src-1.3.0b-beta/lib-src/soundtouch/include'
    > make[3]: Für das Ziel »all« ist nichts zu tun.
    > make[3]: Leaving directory
    > `/usr/src/packages/SOURCES/audacity-src-1.3.0b-beta/lib-src/soundtouch/include'
    > Making all in source
    > make[3]: Entering directory
    > `/usr/src/packages/SOURCES/audacity-src-1.3.0b-beta/lib-src/soundtouch/source'
    > Making all in SoundTouch
    > make[4]: Entering directory
    > `/usr/src/packages/SOURCES/audacity-src-1.3.0b-beta/lib-src/soundtouch/source/SoundTouch'
    > if /bin/sh ../../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I.
    > -I../../config -I../../include -O3 -fcheck-new -I../../include -MT
    > AAFilter.lo -MD -MP -MF ".deps/AAFilter.Tpo" \
    > -c -o AAFilter.lo `test -f 'AAFilter.cpp' || echo './'`AAFilter.cpp; \
    > then mv -f ".deps/AAFilter.Tpo" ".deps/AAFilter.Plo"; \
    > else rm -f ".deps/AAFilter.Tpo"; exit 1; \
    > fi
    > g++ -DHAVE_CONFIG_H -I. -I. -I../../config -I../../include -O3
    > -fcheck-new -I../../include -MT AAFilter.lo -MD -MP -MF
    > .deps/AAFilter.Tpo -c AAFilter.cpp -o AAFilter.o
    > echo timestamp > AAFilter.lo
    > if /bin/sh ../../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I.
    > -I../../config -I../../include -O3 -fcheck-new -I../../include -MT
    > FIRFilter.lo -MD -MP -MF ".deps/FIRFilter.Tpo" \
    > -c -o FIRFilter.lo `test -f 'FIRFilter.cpp' || echo
    > './'`FIRFilter.cpp; \
    > then mv -f ".deps/FIRFilter.Tpo" ".deps/FIRFilter.Plo"; \
    > else rm -f ".deps/FIRFilter.Tpo"; exit 1; \
    > fi
    > g++ -DHAVE_CONFIG_H -I. -I. -I../../config -I../../include -O3
    > -fcheck-new -I../../include -MT FIRFilter.lo -MD -MP -MF
    > .deps/FIRFilter.Tpo -c FIRFilter.cpp -o FIRFilter.o
    > echo timestamp > FIRFilter.lo
    > if /bin/sh ../../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I.
    > -I../../config -I../../include -O3 -fcheck-new -I../../include -MT
    > FIFOSampleBuffer.lo -MD -MP -MF ".deps/FIFOSampleBuffer.Tpo" \
    > -c -o FIFOSampleBuffer.lo `test -f 'FIFOSampleBuffer.cpp' || echo
    > './'`FIFOSampleBuffer.cpp; \
    > then mv -f ".deps/FIFOSampleBuffer.Tpo" ".deps/FIFOSampleBuffer.Plo"; \
    > else rm -f ".deps/FIFOSampleBuffer.Tpo"; exit 1; \
    > fi
    > g++ -DHAVE_CONFIG_H -I. -I. -I../../config -I../../include -O3
    > -fcheck-new -I../../include -MT FIFOSampleBuffer.lo -MD -MP -MF
    > .deps/FIFOSampleBuffer.Tpo -c FIFOSampleBuffer.cpp -o FIFOSampleBuffer.o
    > echo timestamp > FIFOSampleBuffer.lo
    > if /bin/sh ../../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I.
    > -I../../config -I../../include -O3 -fcheck-new -I../../include -MT
    > mmx_gcc.lo -MD -MP -MF ".deps/mmx_gcc.Tpo" \
    > -c -o mmx_gcc.lo `test -f 'mmx_gcc.cpp' || echo './'`mmx_gcc.cpp; \
    > then mv -f ".deps/mmx_gcc.Tpo" ".deps/mmx_gcc.Plo"; \
    > else rm -f ".deps/mmx_gcc.Tpo"; exit 1; \
    > fi
    > g++ -DHAVE_CONFIG_H -I. -I. -I../../config -I../../include -O3
    > -fcheck-new -I../../include -MT mmx_gcc.lo -MD -MP -MF
    > .deps/mmx_gcc.Tpo -c mmx_gcc.cpp -o mmx_gcc.o
    > echo timestamp > mmx_gcc.lo
    > if /bin/sh ../../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I.
    > -I../../config -I../../include -O3 -fcheck-new -I../../include -MT
    > RateTransposer.lo -MD -MP -MF ".deps/RateTransposer.Tpo" \
    > -c -o RateTransposer.lo `test -f 'RateTransposer.cpp' || echo
    > './'`RateTransposer.cpp; \
    > then mv -f ".deps/RateTransposer.Tpo" ".deps/RateTransposer.Plo"; \
    > else rm -f ".deps/RateTransposer.Tpo"; exit 1; \
    > fi
    > g++ -DHAVE_CONFIG_H -I. -I. -I../../config -I../../include -O3
    > -fcheck-new -I../../include -MT RateTransposer.lo -MD -MP -MF
    > .deps/RateTransposer.Tpo -c RateTransposer.cpp -o RateTransposer.o
    > echo timestamp > RateTransposer.lo
    > if /bin/sh ../../libtool --mode=compile g++ -DHAVE_CONFIG_H -I. -I.
    > -I../../config -I../../include -O3 -fcheck-new -I../../include -MT
    > SoundTouch.lo -MD -MP -MF ".deps/SoundTouch.Tpo" \
    > -c -o SoundTouch.lo `test -f 'SoundTouch.cpp' || echo
    > './'`SoundTouch.cpp; \
    > then mv -f ".deps/SoundTouch.Tpo" ".deps/SoundTouch.Plo"; \
    > else rm -f ".deps/SoundTouch.Tpo"; exit 1; \
    > fi
    > g++ -DHAVE_CONFIG_H -I. -I. -I../../config -I../../include -O3
    > -fcheck-new -I../../include -MT SoundTouch.lo -MD -MP -MF
    > .deps/SoundTouch.Tpo -c SoundTouch.cpp -o SoundTouch.o
    > ../../include/SoundTouch.h:149: error: extra qualification
    > 'soundtouch::SoundTouch::' on member 'getVersionId'
    > make[4]: *** [SoundTouch.lo] Fehler 1
    > make[4]: Leaving directory
    > `/usr/src/packages/SOURCES/audacity-src-1.3.0b-beta/lib-src/soundtouch/source/SoundTouch'
    > make[3]: *** [all-recursive] Fehler 1
    > make[3]: Leaving directory
    > `/usr/src/packages/SOURCES/audacity-src-1.3.0b-beta/lib-src/soundtouch/source'
    > make[2]: *** [all-recursive] Fehler 1
    > make[2]: Leaving directory
    > `/usr/src/packages/SOURCES/audacity-src-1.3.0b-beta/lib-src/soundtouch'
    > make[1]: *** [soundtouch-recursive] Fehler 2
    > make[1]: Leaving directory
    > `/usr/src/packages/SOURCES/audacity-src-1.3.0b-beta/lib-src'
    > make: *** [audacity] Fehler 2
    > linux-1:/usr/src/packages/SOURCES/audacity-src-1.3.0b-beta #



    Any ideas???

  • Hi,


    Audacity 1.3.0 has compilation problems with a number of newer versions of GCC. The problem relates to superfluous qualification keywords. You can fix the problem by deleting the word(s) that appear before the "::". For example, change the line


    Code
    static uint soundtouch::SoundTouch::getVersionId();


    into


    Code
    static uint getVersionId();


    You might have to do this in multiple cases.


    Another solution is to download the current CVS development version, which is 1.3.1, where those issues should have been fixed by now. See the Audacity Homepage for directions on how to access the CVS development version.


    Please note: This is the German-language Audacity forum. You might want to ask further questions on the English-language forum, which can be found at http://audacityteam.org/forum/


    Have fun!
    Markus

  • 1.3.1 gibt die gleiche Fehlermeldung an der gleiche Stelle. Es scheint noch etwas Aufraumarbeit nötig, um die "superfluous qualification keywords" raus zu nehmen.


    Gibt es eine "Roadmap" für ein ALSA-fähiger Audacity?

  • Zitat von geSusst


    1.3.1 gibt die gleiche Fehlermeldung an der gleiche Stelle. Es scheint noch etwas Aufraumarbeit nötig, um die "superfluous qualification keywords" raus zu nehmen.


    Kann nicht sein, habe hier 1.3.1 und bei mir sieht das so aus:


    Code
    markus@markus:~/audacity$ find . -name "SoundTouch.h" | xargs grep "getVersionId"
        static uint getVersionId();


    Was sagt bei Dir das folgende Kommando:


    Code
    cvs log lib-src/soundtouch/include/SoundTouch.h


    Bei mir steht da unter anderem:


    Code
    revision 1.3
    date: 2005/12/31 22:04:26;  author: richardash1981;  state: Exp;  lines: +4 -4
    Fix to make audacity compile with GCC 4.1 on Linux


    Zitat


    Gibt es eine "Roadmap" für ein ALSA-fähiger Audacity?


    Audacity 1.3.1 funktioniert hier wunderbar mit ALSA und Portaudio v19.

  • Hallo Markus,


    Ich habe die CVS-Befahl ausprobiert, wie du es vorgeschlagen hast. Das Ergebnis ist wie folgt;


    linux-1:/usr/src/packages/SOURCES/audacity-src-1.3.1-beta # cvs log lib-src/soundtouch/include/SoundTouch.h
    cvs log: warning: failed to open /root/.cvspass for reading: No such file or directory
    cvs log: cannot open CVS/Entries for reading: No such file or directory
    cvs [log aborted]: no repository
    linux-1:/usr/src/packages/SOURCES/audacity-src-1.3.1-beta #


    Die "sound touch" Unterverzeichnis scheint komplett zu sein und ist unter -


    /usr/src/packages/SOURCES/audacity-src-1.3.1-beta/lib-src/soundtouch - zu finden.



    Die frage bezuglich ALSA ist weil ich nur Gerausch von der Line-Eingang meines Sound-Kartes mit Audacity aufnehmen kann. In vergleich QaREcord nimmt der Audio Ton richtig auf, aber nur in 16Bit.


    Ich danke Dir für Deine hilfe und wenn Du mir weitere Tipps geben kann, wie ich die Soundsysteme unter Linux in griff kriegen kann bin ich sehr Dankbar, Simon

  • Du musst den Befehl im audacity/-Verzeichnis ausführen, also sozusagen in audacity-src-1.3.1-beta/audacity.


    Woher hast Du diese SOURCES? Ist das ein Source-Package? Woher hast Du das? Um die "echte" aktuelle 1.3.1-Beta-Version von Audacity zu bekommen, musst Du diese mit CVS herunterladen. Wie das geht, steht hier: http://sourceforge.net/cvs/?group_id=6235


    Wie meinst Du, dass Du "die Soundsysteme in den Griff kriegen kannst"? Nach Deiner Beschreibung scheint es doch so zu sein, dass ALSA und OSS (ALSA-Emulation) wunderbar funktionieren!?



    Markus

  • Hallo Markus,


    die "echte" Audactiy-Beta-Version war im root mit der folgende 2 Befehle runterladen.


    # cvs -d /usr/src/packages/SOURCES init


    # cvs -d /usr/src/packages/SOURCES -d:pserver:anonymous@audacity.cvs.sourceforge.net:/cvsroot/audacity checkout audacity


    Wie üblich mit alle andere Progamme, möchte ich "./configure", "make" und zuletzt "checkinstall" benuzten. Das ergebnis ist normalaweiser ein RPM in der /usr/src/packages/RPMs/i586 bzw. /usr/src/packages/RPMs/i686 Verzeichnisse.


    Soweit ich beurteilen kann, von der Kommandlinie aus, ist der ASLA-Sound-System funktions bereit. Das problem ist die GUIs! Egal ob alsamixer, alsamixer-gui, kmix oder qamix, die bieten nicht alle die Steuer-Funktionen das mein Soundkarte für nötig Braucht an.


    Es ist nicht leicht, aber meistens schaffe ich es irgendwie gerade von der Kommandlinie aus der Sound-system zu steuren. Obwohl es gibt ein vielfält von Linux Sound-Anwendungen, homogen sind die Anwendungen nicht. Ich habe die eindruck, das es zeimlich lang dauern wird, bevor der "Standard" PC-Anwender eine leicht zu bedienen Linux-Sound-System kriegt.


    Lange rede, kurze Sinn, was ist Deine Emphelung für die "configure" zusatz. Ich habe zufällig --with-portaudio=v19 --without-portmixer in ein Forum gefunden.


    Ciao, Simon

  • ./configure --with-portaudio=v19 --without-portmixer ist ok... Mach doch nochmal einen neuen Checkout und versuche nochmal die Konfiguration. Wegen den GUIs: die sollten normalerweise schon alle Funktionen zeigen, die die Soundkarte auch unterstützt. Macht zumindest mein Gnome-Mixer, wie das unter KDE ist, weiß ich leider nicht (habe aber schon hier im Forum mitbekommen, dass das KMix oft ein bisschen spartanisch ist, es erlaubt z.B. keine Auswahl zwischen OSS und ALSA). Kann natürlich auch sein, dass Linux Deine Soundkarte nicht 100%tig unterstützt. Aber wie gesagt, das sind Spekulationen, da solltest Du Dir evtl. woanders kompetenten Rat holen.