Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

undefined symbols when building on raspberry pi 3b+ #449

Closed
falquaddoomi opened this issue Feb 5, 2021 · 2 comments
Closed

undefined symbols when building on raspberry pi 3b+ #449

falquaddoomi opened this issue Feb 5, 2021 · 2 comments

Comments

@falquaddoomi
Copy link

I'd like to use the pulseaudio-integrated version of projectM to display music visualizations for whatever is being played. After checking out d789acb (i.e., master as of today) and following the Pi-specific instructions in BUILDING.md, I ran the following to configure and start compiling the project:

./configure --enable-pulseaudio --enable-sdl --enable-gles && make

Unfortunately, I'm encountering a few undefined symbols. Here's the relevant part of the build log:

make[4]: Entering directory '/home/pi/checkouts/projectm/src/projectM-qt'
depbase=`echo qprojectm_mainwindow.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
g++ -DHAVE_CONFIG_H -I. -I../..  -include ../../config.h -DSYSCONFDIR=\""/usr/local/etc"\" -I../../src/libprojectM -I../../src/libprojectM/Renderer -pipe -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I. -isystem /usr/include/arm-linux-gnueabihf/qt5 -isystem /usr/include/arm-linux-gnueabihf/qt5/QtOpenGL -isystem /usr/include/arm-linux-gnueabihf/qt5/QtWidgets -isystem /usr/include/arm-linux-gnueabihf/qt5/QtGui -isystem /usr/include/arm-linux-gnueabihf/qt5/QtCore -I. -I/usr/lib/arm-linux-gnueabihf/qt5/mkspecs/linux-g++  -fPIC -I./vendor  -g -O2 -pthread -std=c++11 -MT qprojectm_mainwindow.o -MD -MP -MF $depbase.Tpo -c -o qprojectm_mainwindow.o qprojectm_mainwindow.cpp &&\
mv -f $depbase.Tpo $depbase.Po
In file included from qprojectm_mainwindow.cpp:39:
qprojectmwidget.hpp: In member function ‘void QProjectMWidget::setup_opengl(int, int)’:
qprojectmwidget.hpp:280:19: error: ‘GL_SMOOTH’ was not declared in this scope
    glShadeModel ( GL_SMOOTH );
                   ^~~~~~~~~
qprojectmwidget.hpp:280:19: note: suggested alternative: ‘GL_SHORT’
    glShadeModel ( GL_SMOOTH );
                   ^~~~~~~~~
                   GL_SHORT
qprojectmwidget.hpp:280:4: error: ‘glShadeModel’ was not declared in this scope
    glShadeModel ( GL_SMOOTH );
    ^~~~~~~~~~~~
qprojectmwidget.hpp:280:4: note: suggested alternative: ‘QTreeModel’
    glShadeModel ( GL_SMOOTH );
    ^~~~~~~~~~~~
    QTreeModel
qprojectmwidget.hpp:293:4: error: ‘glMatrixMode’ was not declared in this scope
    glMatrixMode ( GL_TEXTURE );
    ^~~~~~~~~~~~
qprojectmwidget.hpp:293:4: note: suggested alternative: ‘QMatrix4x3’
    glMatrixMode ( GL_TEXTURE );
    ^~~~~~~~~~~~
    QMatrix4x3
qprojectmwidget.hpp:294:4: error: ‘glLoadIdentity’ was not declared in this scope
    glLoadIdentity();
    ^~~~~~~~~~~~~~
qprojectmwidget.hpp:297:19: error: ‘GL_PROJECTION’ was not declared in this scope
    glMatrixMode ( GL_PROJECTION );
                   ^~~~~~~~~~~~~
qprojectmwidget.hpp:297:19: note: suggested alternative: ‘GL_LOCATION’
    glMatrixMode ( GL_PROJECTION );
                   ^~~~~~~~~~~~~
                   GL_LOCATION
qprojectmwidget.hpp:301:19: error: ‘GL_MODELVIEW’ was not declared in this scope
    glMatrixMode ( GL_MODELVIEW );
                   ^~~~~~~~~~~~
qprojectmwidget.hpp:301:19: note: suggested alternative: ‘GL_NEVER’
    glMatrixMode ( GL_MODELVIEW );
                   ^~~~~~~~~~~~
                   GL_NEVER
qprojectmwidget.hpp:304:4: error: ‘glDrawBuffer’ was not declared in this scope
    glDrawBuffer ( GL_BACK );
    ^~~~~~~~~~~~
qprojectmwidget.hpp:304:4: note: suggested alternative: ‘glDrawBuffers’
    glDrawBuffer ( GL_BACK );
    ^~~~~~~~~~~~
    glDrawBuffers
qprojectmwidget.hpp:310:15: error: ‘GL_LINE_SMOOTH’ was not declared in this scope
    glEnable ( GL_LINE_SMOOTH );
               ^~~~~~~~~~~~~~
qprojectmwidget.hpp:310:15: note: suggested alternative: ‘GL_LINE_LOOP’
    glEnable ( GL_LINE_SMOOTH );
               ^~~~~~~~~~~~~~
               GL_LINE_LOOP
qprojectmwidget.hpp:311:15: error: ‘GL_POINT_SMOOTH’ was not declared in this scope
    glEnable ( GL_POINT_SMOOTH );
               ^~~~~~~~~~~~~~~
qprojectmwidget.hpp:311:15: note: suggested alternative: ‘GL_POINTS’
    glEnable ( GL_POINT_SMOOTH );
               ^~~~~~~~~~~~~~~
               GL_POINTS
qprojectmwidget.hpp:317:4: error: ‘glLineStipple’ was not declared in this scope
    glLineStipple ( 2, 0xAAAA );
    ^~~~~~~~~~~~~
qprojectmwidget.hpp:317:4: note: suggested alternative: ‘glBindSampler’
    glLineStipple ( 2, 0xAAAA );
    ^~~~~~~~~~~~~
    glBindSampler
qprojectm_mainwindow.cpp: In member function ‘void QProjectM_MainWindow::updateFilteredPlaylist(const QString&)’:
qprojectm_mainwindow.cpp:1258:45: warning: comparison of integer expressions of different signedness: ‘const long int’ and ‘const unsigned int’ [-Wsign-compare]
    if (activePresetId.hasValue() && data.id == activePresetId.value()) {
                                     ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
qprojectm_mainwindow.cpp:1277:46: warning: comparison of integer expressions of different signedness: ‘const long int’ and ‘const unsigned int’ [-Wsign-compare]
     if (activePresetId.hasValue() && data.id == activePresetId.value()) {
                                      ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
make[4]: *** [Makefile:528: qprojectm_mainwindow.o] Error 1
make[4]: Leaving directory '/home/pi/checkouts/projectm/src/projectM-qt'
make[3]: *** [Makefile:454: all] Error 2
make[3]: Leaving directory '/home/pi/checkouts/projectm/src/projectM-qt'
make[2]: *** [Makefile:458: all-recursive] Error 1
make[2]: Leaving directory '/home/pi/checkouts/projectm/src'
make[1]: *** [Makefile:526: all-recursive] Error 1
make[1]: Leaving directory '/home/pi/checkouts/projectm'
make: *** [Makefile:416: all] Error 2

I'm using Raspbian 10 (buster). Here's the output of uname -a: Linux raspberrypi 5.4.83-v7+ #1379 SMP Mon Dec 14 13:08:57 GMT 2020 armv7l GNU/Linux. Thanks for your time!

@falquaddoomi
Copy link
Author

Ok, I feel a bit foolish...after posting this, I read #356, which suggests adding #include <GL/gl.h> to src/projectM-qt/qprojectmwidget.hpp, which fixes the issue. Hopefully other people who have the same issue will find this and be able to apply the same fix.

@scorgn
Copy link

scorgn commented Aug 22, 2021

Same issue, this saved me a ton of time! Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants