ccrma / miniAudicle

miniAudicle: integrated development + performance environment for the ChucK programming language
https://chuck.stanford.edu/
GNU General Public License v2.0
65 stars 9 forks source link

miniAudicle fails to build on Fedora 38 #70

Closed ycollet closed 1 year ago

ycollet commented 1 year ago

I am trying to build miniAudicle on Fedora 38 with gcc-13.1. The build fails with the following error message:

g++ -c -pipe -I/home/collette/tmp/miniAudicle/src/qt -D__LINUX_ALSA__ -D__CK_SNDFILE_NATIVE__ -Ichuck/src/core -Ichuck/src/host -O3 -std=gnu++11 -w -D_REENTRANT -fPIC -D__MA_COLOR_CONSOLE__ -DHAVE_CONFIG_H -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I/usr/include/qt5 -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtCore -Iqt-build -Iqt-build -I/../lib64/qt5/mkspecs/linux-g++ -o qt-build/mAMainWindow.o qt/mAMainWindow.cpp
qt/mAMainWindow.cpp: Dans le constructeur « mAMainWindow::mAMainWindow(QWidget*) »:
qt/mAMainWindow.cpp:136:36: erreur: utilisation invalide du type incomplet « class QScreen »
  136 |     QRect available = primaryScreen->availableGeometry();
      |                                    ^~
Dans le fichier inclus depuis /usr/include/qt5/QtWidgets/qwidget.h:55,
                 depuis /usr/include/qt5/QtWidgets/qdialog.h:44,
                 depuis /usr/include/qt5/QtWidgets/qmessagebox.h:45,
                 depuis /usr/include/qt5/QtWidgets/QMessageBox:1,
                 depuis qt/mAMainWindow.cpp:24:
/usr/include/qt5/QtGui/qcursor.h:51:7: note: déclaration anticipée de « class QScreen »
   51 | class QScreen;
      |       ^~~~~~~
make[1]: *** [makefile.qt-alsa:2190: qt-build/mAMainWindow.o] Error 1

Probably a missing header.

gewang commented 1 year ago

Thanks for reporting! Looking at the build output, it appears you are using Qt5 whereas miniAudicle requires Qt6. You might also confirm this by running qmake --version to see which version of Qt it's using. If there are multiple versions of Qt installed on your system, select Qt6 (though I have not had to do this on Linux so I do not actually know how). Please keep us posted on this issue.

ycollet commented 1 year ago

Ha, excellent. I thought that the port was done from Qt4 to Qt5. On linux, qmake binaries are postfixed by their versions. For qt6, it'll be qmake-qt6. And to start the build: make linux-alsa QMAKE=qmake-qt6. I close the ticket and thanks a lot for your answer !