On Mon, 24 Oct 2022 11:14:46 -0000
"Martin Gansser" <martin.gansser(a)gmail.com> wrote:
Hi,
when compiling QMPlay2-22.10.23 [1] on f35 and f36 i get this error message:
[38/321] /usr/bin/g++ -DDBUS_SUSPEND -DNOTIFIES_FREEDESKTOP -DQMPLAY2SHAREDLIB_LIBRARY
-DQMPLAY2_LIBASS -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_QML_LIB
-DQT_SVG_LIB -DQT_USE_FAST_OPERATOR_PLUS -DQT_WIDGETS_LIB -DUSE_OPENGL -DUSE_QML
-DUSE_YOUTUBEDL -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -Dlibqmplay2_EXPORTS
-I/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/redhat-linux-build/src/qmplay2
-I/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/src/qmplay2
-I/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/redhat-linux-build/src/qmplay2/libqmplay2_autogen/include
-I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz
-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4
-I/usr/include/libxml2 -I/usr/include/fribidi -I/usr/include/ffmpeg -isystem
/usr/include/qt5 -isystem /usr/include/qt5/QtCore -isystem
/usr/lib64/qt5/mkspecs/linux-g++ -isystem /usr/include/qt5/QtGui -isystem
/usr/include/qt5/QtWidgets -isystem /usr/inc
lude/qt5/Q
tSvg -isystem /usr/include/qt5/QtDBus -isystem
/usr/include/qt5/QtQml -isystem /usr/include/qt5/QtNetwork -Wall -O2 -flto=auto
-ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall
-Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong
-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
-fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -g -fPIC -fPIC
-std=gnu++14 -MD -MT src/qmplay2/CMakeFiles/libqmplay2.dir/QMPlay2OSD.cpp.o -MF
src/qmplay2/CMakeFiles/libqmplay2.dir/QMPlay2OSD.cpp.o.d -o
src/qmplay2/CMakeFiles/libqmplay2.dir/QMPlay2OSD.cpp.o -c
/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/src/qmplay2/QMPlay2OSD.cpp
FAILED: src/qmplay2/CMakeFiles/libqmplay2.dir/QMPlay2OSD.cpp.o
/usr/bin/g++ -DDBUS_SUSPEND -DNOTIFIES_FREEDESKTOP -DQMPLAY2SHAREDLIB_LIBRARY
-DQMPLAY2_LIBASS -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_QML_LIB
-DQT_SVG_LIB -DQT_USE_FAST_OPERATOR_PLUS -DQT_WIDGETS_LIB -DUSE_OPENGL -DUSE_QML
-DUSE_YOUTUBEDL -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -Dlibqmplay2_EXPORTS
-I/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/redhat-linux-build/src/qmplay2
-I/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/src/qmplay2
-I/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/redhat-linux-build/src/qmplay2/libqmplay2_autogen/include
-I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz
-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sysprof-4
-I/usr/include/libxml2 -I/usr/include/fribidi -I/usr/include/ffmpeg -isystem
/usr/include/qt5 -isystem /usr/include/qt5/QtCore -isystem
/usr/lib64/qt5/mkspecs/linux-g++ -isystem /usr/include/qt5/QtGui -isystem
/usr/include/qt5/QtWidgets -isystem /usr/include/qt5/
QtSvg -isy
stem /usr/include/qt5/QtDBus -isystem /usr/include/qt5/QtQml
-isystem /usr/include/qt5/QtNetwork -Wall -O2 -flto=auto -ffat-lto-objects -fexceptions -g
-grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
-Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
-fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64
-mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -g
-fPIC -fPIC -std=gnu++14 -MD -MT src/qmplay2/CMakeFiles/libqmplay2.dir/QMPlay2OSD.cpp.o
-MF src/qmplay2/CMakeFiles/libqmplay2.dir/QMPlay2OSD.cpp.o.d -o
src/qmplay2/CMakeFiles/libqmplay2.dir/QMPlay2OSD.cpp.o -c
/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/src/qmplay2/QMPlay2OSD.cpp
In file included from
/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/src/qmplay2/QMPlay2OSD.cpp:19:
/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/src/qmplay2/QMPlay2OSD.hpp:74:53: error:
'std::shared_ptr' has not been declared
74 | static std::unique_lock<std::mutex>
ensure(std::shared_ptr<QMPlay2OSD> &osd);
| ^~~~~~~~~~
/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/src/qmplay2/QMPlay2OSD.hpp:74:63: error:
expected ',' or '...' before '<' token
74 | static std::unique_lock<std::mutex>
ensure(std::shared_ptr<QMPlay2OSD> &osd);
| ^
/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/src/qmplay2/QMPlay2OSD.hpp:174:37: error:
'shared_ptr' is not a member of 'std'
174 | using QMPlay2OSDList = QVector<std::shared_ptr<const QMPlay2OSD>>;
| ^~~~~~~~~~
/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/src/qmplay2/QMPlay2OSD.hpp:30:1: note:
'std::shared_ptr' is defined in header '<memory>'; did you forget to
'#include <memory>'?
29 | #include <mutex>
+++ |+#include <memory>
30 |
/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/src/qmplay2/QMPlay2OSD.hpp:174:37: error:
'shared_ptr' is not a member of 'std'
174 | using QMPlay2OSDList = QVector<std::shared_ptr<const QMPlay2OSD>>;
| ^~~~~~~~~~
/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/src/qmplay2/QMPlay2OSD.hpp:174:37: note:
'std::shared_ptr' is defined in header '<memory>'; did you forget to
'#include <memory>'?
/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/src/qmplay2/QMPlay2OSD.hpp:174:64: error:
template argument 1 is invalid
174 | using QMPlay2OSDList = QVector<std::shared_ptr<const QMPlay2OSD>>;
| ^~
/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/src/qmplay2/QMPlay2OSD.cpp:31:20: error:
'std::unique_lock<std::mutex> QMPlay2OSD::ensure' is not a static data
member of 'class QMPlay2OSD'
31 | unique_lock<mutex> QMPlay2OSD::ensure(shared_ptr<QMPlay2OSD>
&osd)
| ^~~~~~~~~~
/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/src/qmplay2/QMPlay2OSD.cpp:31:39: error:
'shared_ptr' was not declared in this scope
31 | unique_lock<mutex> QMPlay2OSD::ensure(shared_ptr<QMPlay2OSD>
&osd)
| ^~~~~~~~~~
/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/src/qmplay2/QMPlay2OSD.cpp:20:1: note:
'std::shared_ptr' is defined in header '<memory>'; did you forget to
'#include <memory>'?
19 | #include <QMPlay2OSD.hpp>
+++ |+#include <memory>
20 |
/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/src/qmplay2/QMPlay2OSD.cpp:31:60: error:
expected primary-expression before '>' token
31 | unique_lock<mutex> QMPlay2OSD::ensure(shared_ptr<QMPlay2OSD>
&osd)
| ^
/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/src/qmplay2/QMPlay2OSD.cpp:31:63: error:
'osd' was not declared in this scope
31 | unique_lock<mutex> QMPlay2OSD::ensure(shared_ptr<QMPlay2OSD>
&osd)
| ^~~
/home/martin/rpmbuild/BUILD/QMPlay2-22.10.23/src/qmplay2/QMPlay2OSD.cpp:32:1: error:
expected ',' or ';' before '{' token
[1]
https://martinkg.fedorapeople.org/ErrorReports/qmplay2.spec
How can I solve this ?
do what the compiler suggests, add "#include <memory>" into
src/qmplay2/QMPlay2OSD .hpp
Dan