Build on RPI fails with 4.7.0 - RC1

Post Reply
Aurélien

Hi!

I'm trying to build QLC+ on a RPI for several weeks but always end with an error due to linked libs:

g++ -Wl,-O1 -o bus_test bus_test.o moc_bus_test.o -L../../src -L/usr/lib/arm-linux-gnueabihf -lqlcplusengine -lQtTest -lQtScript -lQtXml -lQtGui -lQtCore -lpthread
../../src/libqlcplusengine.so: undefined reference to `fftw_malloc'
../../src/libqlcplusengine.so: undefined reference to `fftw_free'
../../src/libqlcplusengine.so: undefined reference to `fftw_execute'
../../src/libqlcplusengine.so: undefined reference to `fftw_plan_dft_r2c_1d'
../../src/libqlcplusengine.so: undefined reference to `fftw_destroy_plan'
collect2: ld returned 1 exit status
make[3]: *** [bus_test] Erreur 1
make[3]: quittant le répertoire « /home/pi/qlcplus-4.7.0.RC1/engine/test/bus »
make[2]: *** [sub-bus-make_default-ordered] Erreur 2
make[2]: quittant le répertoire « /home/pi/qlcplus-4.7.0.RC1/engine/test »
make[1]: *** [sub-test-make_default-ordered] Erreur 2
make[1]: quittant le répertoire « /home/pi/qlcplus-4.7.0.RC1/engine »
make: *** [sub-engine-make_default-ordered] Erreur 2


It seems this error occurs when the libs aren't at the end of the line of the gcc command, but even by moving ($LIBS) at the ends of the lines in the Makefiles in which they weren't, I just don't get it.

By the way, fftw dev files are installed:
ii libfftw3-3:armhf 3.3.2-3.1 armhf Library for computing Fast Fourier Transforms
ii libfftw3-bin 3.3.2-3.1 armhf Library for computing Fast Fourier Transforms -
ii libfftw3-dev:armhf 3.3.2-3.1 armhf Library for computing Fast Fourier Transforms -

Any idea?
Massimo Callegari

Aurelien, you posted again the same thing and again on the wrong forum.
https://sourceforge.net/p/qlcplus/discu ... /e3231741/

Can you please give more details about what you're doing ?
For example the GCC version.
Also, try with QLC+ 4.7.0 instead of RC1.
Aurélien

Oh sorry, I thought the first one didn't reach anything, and had to subscribe to sourceforge.

As far as gcc is concerned, here it is:
dpkg -l gcc*
Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
| État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé/W=attend-traitement-déclenchements
|/ Err?=(aucune)/besoin Réinstallation (État,Err: majuscule=mauvais)
||/ Nom Version Architecture Description
+++-=====================-===============-===============-================================================
ii gcc 4:4.6.3-8 armhf GNU C compiler
un gcc-4.1 (aucune description n'est disponible)
un gcc-4.3 (aucune description n'est disponible)
un gcc-4.4 (aucune description n'est disponible)
un gcc-4.5 (aucune description n'est disponible)
ii gcc-4.5-base:armhf 4.5.3-12+rpi1 armhf The GNU Compiler Collection (base package)
ii gcc-4.6 4.6.3-14+rpi1 armhf GNU C compiler
ii gcc-4.6-base:armhf 4.6.3-14+rpi1 armhf GCC, the GNU Compiler Collection (base package)
un gcc-4.6-doc (aucune description n'est disponible)
un gcc-4.6-locales (aucune description n'est disponible)
ii gcc-4.7-base:armhf 4.7.2-5+rpi1 armhf GCC, the GNU Compiler Collection (base package)
un gcc-doc (aucune description n'est disponible)
un gcc-multilib (aucune description n'est disponible)

I'm with raspbian stable, and I'm going to try the 4.7.0 right now, but it takes a bit on the RPI (don't know how to build something on an arch for another arch, and don't have the time to look for this right now).
Aurélien

(weird, I do have post a comment, but it doesn't appear - hope I'm not messing up again!!)

So, I've tried with 4.7.0, but I finally reach an error:

make[3]: quittant le répertoire « /home/pi/qlcplus-4.7.0/plugins/midi/alsa »
make[2]: quittant le répertoire « /home/pi/qlcplus-4.7.0/plugins/midi »
cd ola/ && /usr/bin/qmake /home/pi/qlcplus-4.7.0/plugins/ola/ola.pro -o Makefile
cd ola/ && make -f Makefile
make[2]: entrant dans le répertoire « /home/pi/qlcplus-4.7.0/plugins/ola »
/usr/bin/uic-qt4 configureolaio.ui -o ui_configureolaio.h
g++ -c -pipe -Werror -Wno-unused-local-typedefs -O2 -Wall -W -D_REENTRANT -fPIC -DQT_WEBKIT -DQT_NO_DEBUG -DQT_PLUGIN -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I../interfaces -I. -I. -o olaio.o olaio.cpp
In file included from olaio.cpp:26:0:
qlclogdestination.h:25:25: fatal error: ola/Logging.h: Aucun fichier ou dossier de ce type
compilation terminated.
make[2]: *** [olaio.o] Erreur 1
make[2]: quittant le répertoire « /home/pi/qlcplus-4.7.0/plugins/ola »
make[1]: *** [sub-ola-make_default] Erreur 2
make[1]: quittant le répertoire « /home/pi/qlcplus-4.7.0/plugins »
make: *** [sub-plugins-make_default-ordered] Erreur 2

I suppose I would have to build it without ola support, but didn't find how by reading make -h and qmake -h.
Luis García-Tornel

Hi Aurelien,

I recommend reading the [Linux Build HOWTO](https://github.com/mcallegari/qlcplus/w ... uild-HOWTO).

To exclude some plugins from the build:

>If you want to exclude some [plugins] from the build process then just comment them out by placing the character # at the beginning of the plugin line in the file plugins/plugins.pro For example:
#unix:SUBDIRS += ola


To install the OLA (notice that you may need to install also additional packages to compile OLA. I needed: *bison flex uuid-dev libcppunit-dev libprotobuf-dev libprotoc-dev*)

>Acquire the latest tarball from the OLA webiste:
http://code.google.com/p/open-lighting/downloads/list
>
>Extract the package and enter into the OLA folder. Then, as usual, type:

>./configure --prefix=/usr
make
sudo make install
Aurélien

OK, thanks, so I removed ola from the plugins, and it finally built OK. But I couldn't install, it seems the /usr/share/qlcplus folder is not created :

make[1]: quittant le répertoire « /home/pi/qlcplus-4.7.0/webaccess »
cd main/ && make -f Makefile install
make[1]: entrant dans le répertoire « /home/pi/qlcplus-4.7.0/main »
install -m 755 -p "qlcplus" "/usr/bin/qlcplus"
strip "/usr/bin/qlcplus"
make[1]: quittant le répertoire « /home/pi/qlcplus-4.7.0/main »
cd fixtures/ && make -f Makefile install
make[1]: entrant dans le répertoire « /home/pi/qlcplus-4.7.0/fixtures »
mkdir: impossible de créer le répertoire « /usr/share/qlcplus »: Aucun fichier ou dossier de ce type
make[1]: *** [install_fixtures] Erreur 1
make[1]: quittant le répertoire « /home/pi/qlcplus-4.7.0/fixtures »
make: *** [sub-fixtures-install_subtargets-ordered] Erreur 2

(I've tried both with sudo and sudo su -)

I precise I already managed to build QLC+ on a "standard" (AMD64) Debian machine, but on RPI, I'm way more noob!
Daniel Nyström

Can you please prefix all your command with LANG=C, like this; LANG=C
sudo make install

2014-04-15 13:10 GMT+02:00 "Aurélien" :
> OK, thanks, so I removed ola from the plugins, and it finally built OK. But
> I couldn't install, it seems the /usr/share/qlcplus folder is not created :
>
> make[1]: quittant le répertoire « /home/pi/qlcplus-4.7.0/webaccess »
> cd main/ && make -f Makefile install
> make[1]: entrant dans le répertoire « /home/pi/qlcplus-4.7.0/main »
> install -m 755 -p "qlcplus" "/usr/bin/qlcplus"
> strip "/usr/bin/qlcplus"
> make[1]: quittant le répertoire « /home/pi/qlcplus-4.7.0/main »
> cd fixtures/ && make -f Makefile install
> make[1]: entrant dans le répertoire « /home/pi/qlcplus-4.7.0/fixtures »
> mkdir: impossible de créer le répertoire « /usr/share/qlcplus »: Aucun
> fichier ou dossier de ce type
> make[1]: [install_fixtures] Erreur 1
> make[1]: quittant le répertoire « /home/pi/qlcplus-4.7.0/fixtures »
> make: [sub-fixtures-install_subtargets-ordered] Erreur 2
>
> (I've tried both with sudo and sudo su -)
>
> I precise I already managed to build QLC+ on a "standard" (AMD64) Debian
> machine, but on RPI, I'm way more noob!
>
> ________________________________
>
> Build on RPI fails with 4.7.0 - RC1
>
> ________________________________
>
> Sent from sourceforge.net because you indicated interest in
> https://sourceforge.net/p/qlcplus/discu ... velopment/
>
> To unsubscribe from further messages, please visit
> https://sourceforge.net/auth/subscriptions/
Aurélien

OK, correct, the problem came from the use of checkinstall.
It's now built and working.
Let's see what it gives.
Post Reply