Build error on Arch

Post Reply
nd925a
Posts: 2
Joined: Thu Jan 07, 2021 1:24 am
Real Name: Nathan

Hello,

Trying to do a fresh install on Arch and got the following error using both the 4.12.3 release (which is pulled by a PKGBUILD in the aur) and current git repo source.

Code: Select all

libftdi-interface.cpp: In static member function ‘static QList<DMXInterface*> LibFTDIInterface::interfaces(QList<DMXInterface*>)’:
libftdi-interface.cpp:138:37: error: ‘struct ftdi_context’ has no member named ‘usb_ctx’
  138 |     if (libusb_get_device_list(ftdi.usb_ctx, &devs) < 0)
      |                                     ^~~~~~~
libftdi-interface.cpp:182:37: error: cannot convert ‘libusb_device*’ to ‘usb_device*’
  182 |         ftdi_usb_get_strings(&ftdi, dev, vend, 256, nme, 256, ser, 256);
      |                                     ^~~
      |                                     |
      |                                     libusb_device*
In file included from libftdi-interface.h:24,
                 from libftdi-interface.cpp:31:
/usr/include/ftdi.h:376:76: note:   initializing argument 2 of ‘int ftdi_usb_get_strings(ftdi_context*, usb_device*, char*, int, char*, int, char*, int)’
  376 |     int ftdi_usb_get_strings(struct ftdi_context *ftdi, struct usb_device *dev,
      |                                                         ~~~~~~~~~~~~~~~~~~~^~~
In file included from libftdi-interface.cpp:28:
/usr/include/libusb-1.0/libusb.h:896:8: note: class type ‘libusb_device’ is incomplete
  896 | struct libusb_device;
I'm gonna continue playing with it, but I'm more than rusty at coding. If someone knows what to do about it I'd appreciate it.

Thanks
User avatar
mcallegari
Posts: 4482
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

[moderator] moved to proper area

GCC version?
libusb version?
nd925a
Posts: 2
Joined: Thu Jan 07, 2021 1:24 am
Real Name: Nathan

Name : glibc
Version : 2.32-5
Description : GNU C Library
Architecture : x86_64
Build Date : Wed 14 Oct 2020 01:00:17 PM EDT

Name : libusb
Version : 1.0.23-3
Description : Library that provides generic access to USB devices
Architecture : x86_64
Provides : libusb-1.0.so=0-64
Build Date : Sat 17 Oct 2020 05:05:04 AM EDT
lighthacker2020
Posts: 42
Joined: Mon Jan 06, 2020 2:40 am
Real Name: Mr Mike

My gut feeling, and Massimo can probably confirm ... you need libusb0. In my Linux Mint VM, I have libusb-0.1 and libusb-dev (both of which are version 0.1.12). I also have libusb-1.0 package installed, but I do not have the corresponding dev package for libusb-1.0, so my build is against the 0.1.12 version of the library, which works fine. In the debian/control file, it specifically says libusb-dev >= 2:0.1.12. I'd suggest trying the 0.1.x version of the package and see if that's better.

Mike
Neutrino
Posts: 8
Joined: Sun Jul 23, 2017 2:45 am
Location: Europe
Real Name: Krischan
Contact:

I can't build the qlcplus-git aur-package:

Code: Select all

enttecdmxusbpro.cpp: In constructor 'EnttecDMXUSBPro::EnttecDMXUSBPro(DMXInterface*, quint32, quint32)':                                                               
enttecdmxusbpro.cpp:37:7: error: 'QMutex::QMutex(QMutex::RecursionMode)' is deprecated: Use QRecursiveMutex instead of a recursive QMutex [-Werror=deprecated-declarati
ons]                                                                                                                                                                   
   37 |     , m_outputMutex(QMutex::Recursive)                                                                                                                         
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                         
In file included from /usr/include/qt/QtCore/QMutex:1,                                                                                                                 
                 from enttecdmxusbpro.h:25,                                                                                                                            
                 from enttecdmxusbpro.cpp:21:                                                                                                                          
/usr/include/qt/QtCore/qmutex.h:140:14: note: declared here                                                                                                            
  140 |     explicit QMutex(RecursionMode mode);                                                                                                                       
      |              ^~~~~~                                                                                                                                            
cc1plus: all warnings being treated as errors                                                                                                                          
 
gcc version 11.1.0 (GCC)
qt5-base version 5.15.2+kde+r296-1

I tried several version of libusb:
libusb-compat (0.1.7-1) OR libusb0 (0.1.12-6) AND ( libusb (1.0.24-2) OR libusb-git (1.0.25.r0.g4622bfcf-1) )
Last edited by Neutrino on Tue Feb 01, 2022 1:59 am, edited 1 time in total.
Neutrino
Posts: 8
Joined: Sun Jul 23, 2017 2:45 am
Location: Europe
Real Name: Krischan
Contact:

also I need help to build qlcplus5 beta with PKGBUILD from qlcplus-git but with
qmake-qt5 CONFIG+=qmlui

Code: Select all

g++ -c -pipe -Werror -Wno-unused-local-typedefs -g -Wall -Wextra -D_REENTRANT -fPIC -DQMLUI -DQT_3DQUICKEXTRAS_LIB -DQT_3DQUICK_LIB -DQT_QUICK_LIB -DQT_SVG_LIB -DQT_MULTIMEDIAWIDGETS_LIB -DQT_PRINTSUPPORT_LIB -DQT_WIDGETS_LIB -DQT_MULTIMEDIA_LIB -DQT_3DEXTRAS_LIB -DQT_3DRENDER_LIB -DQT_3DINPUT_LIB -DQT_3DLOGIC_LIB -DQT_3DCORE_LIB -DQT_GUI_LIB -DQT_QMLMODELS_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -I../engine/src -I../engine/audio/src -Ivirtualconsole -Ifixtureeditor -Itardis -I../plugins/interfaces -I/usr/include/qt -I/usr/include/qt/Qt3DQuickExtras -I/usr/include/qt/Qt3DQuick -I/usr/include/qt/QtQuick -I/usr/include/qt/QtSvg -I/usr/include/qt/QtMultimediaWidgets -I/usr/include/qt/QtPrintSupport -I/usr/include/qt/QtWidgets -I/usr/include/qt/QtMultimedia -I/usr/include/qt/Qt3DExtras -I/usr/include/qt/Qt3DRender -I/usr/include/qt/Qt3DInput -I/usr/include/qt/Qt3DLogic -I/usr/include/qt/Qt3DCore -I/usr/include/qt/QtGui -I/usr/include/qt/QtQmlModels -I/usr/include/qt/QtQml -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtCore -I. -I/usr/lib/qt/mkspecs/linux-g++ -o functioneditor.o functioneditor.cpp
In file included from /usr/include/qt/QtQml/qqml.h:43,
                 from /usr/include/qt/QtQuick/qquickitemgrabresult.h:48,
                 from /usr/include/qt/QtQuick/QQuickItemGrabResult:1,
                 from app.cpp:20:
/usr/include/qt/QtQml/qqmlprivate.h: In function 'void QQmlPrivate::createInto(void*) [with T = ModelSelector]':
/usr/include/qt/QtQml/qqmlprivate.h:166:37: error: 'static void QQmlPrivate::QQmlElement<T>::operator delete(void*, void*) [with T = ModelSelector]' called on pointer returned from a mismatched allocation function [-Werror=mismatched-new-delete]
  166 |     void createInto(void *memory) { new (memory) QQmlElement<T>; }
      |                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/qt/QtQml/qqmlprivate.h:166:37: note: returned from 'void* operator new(std::size_t, void*)'
cc1plus: all warnings being treated as errors
make[1]: *** [Makefile:2390: app.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/home/neutrino/Software/aur/qlcplus5-git/src/qlcplus/qmlui'
make: *** [Makefile:138: sub-qmlui-make_first-ordered] Error 2
gcc version 11.1.0 (GCC)
qt5-base version 5.15.2+kde+r296-1
glibc version: 2.33-5
User avatar
mcallegari
Posts: 4482
Joined: Sun Apr 12, 2015 9:09 am
Location: Italy
Real Name: Massimo Callegari
Contact:

Look like Qt issues to me, not QLC+ related
User avatar
edogawa
Posts: 572
Joined: Thu May 07, 2015 10:34 am
Real Name: Edgar Aichinger

Can't help with v5 beta but I have a patch for the entecusbdmxpro plugin /QMutex problem, which I stumbled into a while ago.

Usually I try to send such deprecation fixes upstream vie github pull request, this time I forgot for some reason.

I append my patch here, it's trivial, and maybe Massimo can merge this to master simply from picking it here? otherwise I'll PR.


EDIT: The patch in its current form is just a quick workaround for Qt 5.15.x users. It doesn't check for older Qt versions and modify the mutex call conditionally, for a proper pull request I really should add appropriate preprocessor handling.
Attachments
qlcplus-QMutex.patch
(1.06 KiB) Downloaded 198 times
User avatar
edogawa
Posts: 572
Joined: Thu May 07, 2015 10:34 am
Real Name: Edgar Aichinger

Post Reply