Skip to content

Unable to build on Linux 6.9.12 #64

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

Open
F33RNI opened this issue Aug 22, 2024 · 0 comments
Open

Unable to build on Linux 6.9.12 #64

F33RNI opened this issue Aug 22, 2024 · 0 comments

Comments

@F33RNI
Copy link

F33RNI commented Aug 22, 2024

Before building i upgraded every module (including uvw) to the latest version and got this error:

[63/79] Building CXX object src/Qv2rayBase/CMakeFiles/Qv2rayBase.dir/src/private/Plugin/LatencyTestThread_p.cpp.o
FAILED: src/Qv2rayBase/CMakeFiles/Qv2rayBase.dir/src/private/Plugin/LatencyTestThread_p.cpp.o 
/usr/bin/c++ -DQT_CORE_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQV2RAY_BASELIB_VERSION=\"3.0.0.0\" -DQV2RAY_BASELIB_VERSION_MAJOR=3 -DQV2RAY_BASELIB_VERSION_MINOR=0 -DQV2RAY_BASELIB_VERSION_PATCH=0 -DQV2RAY_BASELIB_VERSION_TWEAK=0 -DQV2RAY_DEFAULT_VASSETS_PATH=\"/usr/share/v2ray\" -DQV2RAY_DEFAULT_VCORE_PATH=\"/usr/bin/v2ray\" -DQV2RAY_NO_AUTOUPDATE=1 -DQv2rayBase_EXPORTS -DUVW_AS_LIB -I..../Qv2ray/build/src/Qv2rayBase -I..../Qv2ray/src/Qv2rayBase -I..../Qv2ray/build/src/Qv2rayBase/Qv2rayBase_autogen/include -I..../Qv2ray/src/Qv2rayBase/include -I..../Qv2ray/src/Qv2rayBase/src/PluginInterface/include -I..../Qv2ray/src/Qv2rayBase/3rdparty/uvw/src -I..../Qv2ray/build/_deps/libuv-src/include -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib/qt6/mkspecs/linux-g++ -isystem /usr/include/qt6/QtNetwork -O3 -DNDEBUG -std=c++17 -fPIC -fvisibility=hidden -mno-direct-extern-access -MD -MT src/Qv2rayBase/CMakeFiles/Qv2rayBase.dir/src/private/Plugin/LatencyTestThread_p.cpp.o -MF src/Qv2rayBase/CMakeFiles/Qv2rayBase.dir/src/private/Plugin/LatencyTestThread_p.cpp.o.d -o src/Qv2rayBase/CMakeFiles/Qv2rayBase.dir/src/private/Plugin/LatencyTestThread_p.cpp.o -c ..../Qv2ray/src/Qv2rayBase/src/private/Plugin/LatencyTestThread_p.cpp
..../Qv2ray/src/Qv2rayBase/src/private/Plugin/LatencyTestThread_p.cpp: In member function ‘virtual void Qv2rayBase::Plugin::LatencyTestThread::run()’:
..../Qv2ray/src/Qv2rayBase/src/private/Plugin/LatencyTestThread_p.cpp:51:27: error: incomplete type ‘uvw::Loop’ used in nested name specifier
   51 |         loop = uvw::Loop::create();
      |                           ^~~~~~
..../Qv2ray/src/Qv2rayBase/src/private/Plugin/LatencyTestThread_p.cpp:52:25: error: invalid use of incomplete type ‘using std::__shared_ptr_access<uvw::Loop, __gnu_cxx::_S_atomic, false, false>::element_type = class uvw::Loop’ {aka ‘class uvw::Loop’}
   52 |         stopTimer = loop->resource<uvw::TimerHandle>();
      |                         ^~
In file included from ..../Qv2ray/src/Qv2rayBase/include/Qv2rayBase/private/Plugin/LatencyTestThread_p.hpp:26,
                 from ..../Qv2ray/src/Qv2rayBase/src/private/Plugin/LatencyTestThread_p.cpp:17:
..../Qv2ray/src/Qv2rayBase/src/PluginInterface/include/QvPlugin/Handlers/LatencyTestHandler.hpp:7:11: note: forward declaration of ‘using std::__shared_ptr_access<uvw::Loop, __gnu_cxx::_S_atomic, false, false>::element_type = class uvw::Loop’ {aka ‘class uvw::Loop’}
    7 |     class Loop;
      |           ^~~~
..../Qv2ray/src/Qv2rayBase/src/private/Plugin/LatencyTestThread_p.cpp:52:52: error: expected primary-expression before ‘>’ token
   52 |         stopTimer = loop->resource<uvw::TimerHandle>();
      |                                                    ^
..../Qv2ray/src/Qv2rayBase/src/private/Plugin/LatencyTestThread_p.cpp:52:54: error: expected primary-expression before ‘)’ token
   52 |         stopTimer = loop->resource<uvw::TimerHandle>();
      |                                                      ^
..../Qv2ray/src/Qv2rayBase/src/private/Plugin/LatencyTestThread_p.cpp:53:18: error: invalid use of incomplete type ‘using std::__shared_ptr_access<uvw::TimerHandle, __gnu_cxx::_S_atomic, false, false>::element_type = class uvw::TimerHandle’ {aka ‘class uvw::TimerHandle’}
   53 |         stopTimer->on<uvw::TimerEvent>([this](auto &, auto &handle) { doTest(qobject_cast<Qv2rayBase::Plugin::LatencyTestHost *>(parent()), handle); });
      |                  ^~
..../Qv2ray/src/Qv2rayBase/include/Qv2rayBase/private/Plugin/LatencyTestThread_p.hpp:32:11: note: forward declaration of ‘using std::__shared_ptr_access<uvw::TimerHandle, __gnu_cxx::_S_atomic, false, false>::element_type = class uvw::TimerHandle’ {aka ‘class uvw::TimerHandle’}
   32 |     class TimerHandle;
      |           ^~~~~~~~~~~
..../Qv2ray/src/Qv2rayBase/src/private/Plugin/LatencyTestThread_p.cpp:53:28: error: ‘TimerEvent’ is not a member of ‘uvw’; did you mean ‘timer_event’?
   53 |         stopTimer->on<uvw::TimerEvent>([this](auto &, auto &handle) { doTest(qobject_cast<Qv2rayBase::Plugin::LatencyTestHost *>(parent()), handle); });
      |                            ^~~~~~~~~~
      |                            timer_event
..../Qv2ray/src/Qv2rayBase/src/private/Plugin/LatencyTestThread_p.cpp:54:18: error: invalid use of incomplete type ‘using std::__shared_ptr_access<uvw::TimerHandle, __gnu_cxx::_S_atomic, false, false>::element_type = class uvw::TimerHandle’ {aka ‘class uvw::TimerHandle’}
   54 |         stopTimer->start(uvw::TimerHandle::Time{ 500 }, uvw::TimerHandle::Time{ 500 });
      |                  ^~
..../Qv2ray/src/Qv2rayBase/include/Qv2rayBase/private/Plugin/LatencyTestThread_p.hpp:32:11: note: forward declaration of ‘using std::__shared_ptr_access<uvw::TimerHandle, __gnu_cxx::_S_atomic, false, false>::element_type = class uvw::TimerHandle’ {aka ‘class uvw::TimerHandle’}
   32 |     class TimerHandle;
      |           ^~~~~~~~~~~
..../Qv2ray/src/Qv2rayBase/src/private/Plugin/LatencyTestThread_p.cpp:54:44: error: incomplete type ‘uvw::TimerHandle’ used in nested name specifier
   54 |         stopTimer->start(uvw::TimerHandle::Time{ 500 }, uvw::TimerHandle::Time{ 500 });
      |                                            ^~~~
..../Qv2ray/src/Qv2rayBase/src/private/Plugin/LatencyTestThread_p.cpp:54:75: error: incomplete type ‘uvw::TimerHandle’ used in nested name specifier
   54 |         stopTimer->start(uvw::TimerHandle::Time{ 500 }, uvw::TimerHandle::Time{ 500 });
      |                                                                           ^~~~
..../Qv2ray/src/Qv2rayBase/src/private/Plugin/LatencyTestThread_p.cpp:55:13: error: invalid use of incomplete type ‘using std::__shared_ptr_access<uvw::Loop, __gnu_cxx::_S_atomic, false, false>::element_type = class uvw::Loop’ {aka ‘class uvw::Loop’}
   55 |         loop->run();
      |             ^~
..../Qv2ray/src/Qv2rayBase/src/PluginInterface/include/QvPlugin/Handlers/LatencyTestHandler.hpp:7:11: note: forward declaration of ‘using std::__shared_ptr_access<uvw::Loop, __gnu_cxx::_S_atomic, false, false>::element_type = class uvw::Loop’ {aka ‘class uvw::Loop’}
    7 |     class Loop;
      |           ^~~~
..../Qv2ray/src/Qv2rayBase/src/private/Plugin/LatencyTestThread_p.cpp: In member function ‘void Qv2rayBase::Plugin::LatencyTestThread::doTest(Qv2rayBase::Plugin::LatencyTestHost*, uvw::TimerHandle&)’:
..../Qv2ray/src/Qv2rayBase/src/private/Plugin/LatencyTestThread_p.cpp:78:21: error: invalid use of incomplete type ‘using std::__shared_ptr_access<uvw::Loop, __gnu_cxx::_S_atomic, false, false>::element_type = class uvw::Loop’ {aka ‘class uvw::Loop’}
   78 |                 loop->raw(),
      |                     ^~
..../Qv2ray/src/Qv2rayBase/src/PluginInterface/include/QvPlugin/Handlers/LatencyTestHandler.hpp:7:11: note: forward declaration of ‘using std::__shared_ptr_access<uvw::Loop, __gnu_cxx::_S_atomic, false, false>::element_type = class uvw::Loop’ {aka ‘class uvw::Loop’}
    7 |     class Loop;
      |           ^~~~
..../Qv2ray/src/Qv2rayBase/src/private/Plugin/LatencyTestThread_p.cpp:88:17: error: invalid use of incomplete type ‘class uvw::TimerHandle’
   88 |                 handle.stop();
      |                 ^~~~~~
..../Qv2ray/src/Qv2rayBase/include/Qv2rayBase/private/Plugin/LatencyTestThread_p.hpp:32:11: note: forward declaration of ‘class uvw::TimerHandle’
   32 |     class TimerHandle;
      |           ^~~~~~~~~~~
..../Qv2ray/src/Qv2rayBase/src/private/Plugin/LatencyTestThread_p.cpp:89:17: error: invalid use of incomplete type ‘class uvw::TimerHandle’
   89 |                 handle.close();
      |                 ^~~~~~
..../Qv2ray/src/Qv2rayBase/include/Qv2rayBase/private/Plugin/LatencyTestThread_p.hpp:32:11: note: forward declaration of ‘class uvw::TimerHandle’
   32 |     class TimerHandle;
      |           ^~~~~~~~~~~
..../Qv2ray/src/Qv2rayBase/src/private/Plugin/LatencyTestThread_p.cpp:90:21: error: invalid use of incomplete type ‘using std::__shared_ptr_access<uvw::Loop, __gnu_cxx::_S_atomic, false, false>::element_type = class uvw::Loop’ {aka ‘class uvw::Loop’}
   90 |                 loop->clear();
      |                     ^~
..../Qv2ray/src/Qv2rayBase/src/PluginInterface/include/QvPlugin/Handlers/LatencyTestHandler.hpp:7:11: note: forward declaration of ‘using std::__shared_ptr_access<uvw::Loop, __gnu_cxx::_S_atomic, false, false>::element_type = class uvw::Loop’ {aka ‘class uvw::Loop’}
    7 |     class Loop;
      |           ^~~~
..../Qv2ray/src/Qv2rayBase/src/private/Plugin/LatencyTestThread_p.cpp:91:21: error: invalid use of incomplete type ‘using std::__shared_ptr_access<uvw::Loop, __gnu_cxx::_S_atomic, false, false>::element_type = class uvw::Loop’ {aka ‘class uvw::Loop’}
   91 |                 loop->close();
      |                     ^~
..../Qv2ray/src/Qv2rayBase/src/PluginInterface/include/QvPlugin/Handlers/LatencyTestHandler.hpp:7:11: note: forward declaration of ‘using std::__shared_ptr_access<uvw::Loop, __gnu_cxx::_S_atomic, false, false>::element_type = class uvw::Loop’ {aka ‘class uvw::Loop’}
    7 |     class Loop;
      |           ^~~~
..../Qv2ray/src/Qv2rayBase/src/private/Plugin/LatencyTestThread_p.cpp:92:21: error: invalid use of incomplete type ‘using std::__shared_ptr_access<uvw::Loop, __gnu_cxx::_S_atomic, false, false>::element_type = class uvw::Loop’ {aka ‘class uvw::Loop’}
   92 |                 loop->stop();
      |                     ^~
..../Qv2ray/src/Qv2rayBase/src/PluginInterface/include/QvPlugin/Handlers/LatencyTestHandler.hpp:7:11: note: forward declaration of ‘using std::__shared_ptr_access<uvw::Loop, __gnu_cxx::_S_atomic, false, false>::element_type = class uvw::Loop’ {aka ‘class uvw::Loop’}
    7 |     class Loop;
      |           ^~~~
ninja: build stopped: subcommand failed.

Downgrading uvw seems to help a bit but produce another error:

[3/28] Building CXX object CMakeFiles/qv2ray.dir/src/ui/widgets/TagLineEditorWidget.cpp.o
FAILED: CMakeFiles/qv2ray.dir/src/ui/widgets/TagLineEditorWidget.cpp.o 
/usr/bin/c++ -DQAPPLICATION_CLASS=QApplication -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_WIDGETS_LIB -DQV2RAY_BASELIB_VERSION=\"3.0.0.0\" -DQV2RAY_BASELIB_VERSION_MAJOR=3 -DQV2RAY_BASELIB_VERSION_MINOR=0 -DQV2RAY_BASELIB_VERSION_PATCH=0 -DQV2RAY_BASELIB_VERSION_TWEAK=0 -DQV2RAY_BUILD_EXTRA_INFO="\"3.0.0 - Qv2ray 3.0, the new era.\"" -DQV2RAY_BUILD_INFO="\"Qv2ray (Made By Yourself)\"" -DQV2RAY_COMPONENT_AutoLaunchHelper=1 -DQV2RAY_COMPONENT_ConnectionModelHelper=1 -DQV2RAY_COMPONENT_FlowLayout=1 -DQV2RAY_COMPONENT_GeositeReader=1 -DQV2RAY_COMPONENT_GuiPluginHost=1 -DQV2RAY_COMPONENT_LogHighlighter=1 -DQV2RAY_COMPONENT_MessageBus=1 -DQV2RAY_COMPONENT_QJsonModel=1 -DQV2RAY_COMPONENT_QRCodeHelper=1 -DQV2RAY_COMPONENT_QueryParser=1 -DQV2RAY_COMPONENT_RouteSchemeIO=1 -DQV2RAY_COMPONENT_SpeedWidget=1 -DQV2RAY_COMPONENT_StyleManager=1 -DQV2RAY_COMPONENT_UpdateChecker=1 -DQV2RAY_DEFAULT_VASSETS_PATH=\"/usr/share/v2ray\" -DQV2RAY_DEFAULT_VCORE_PATH=\"/usr/bin/v2ray\" -DQV2RAY_NO_AUTOUPDATE=1 -DQV2RAY_VERSION_STRING=\"3.0.0-rc1\" -I..../Qv2ray/build -I..../Qv2ray -I..../Qv2ray/build/qv2ray_autogen/include -I..../Qv2ray/3rdparty/qt-qrcode/lib -I..../Qv2ray/src -I..../Qv2ray/src/components -I..../Qv2ray/src/Qv2rayBase/include -I..../Qv2ray/build/src/Qv2rayBase -I..../Qv2ray/src/Qv2rayBase/src/PluginInterface/include -I..../Qv2ray/3rdparty/SingleApplication -isystem /usr/include/qt6/QtCore -isystem /usr/include/qt6 -isystem /usr/lib/qt6/mkspecs/linux-g++ -isystem /usr/include/qt6/QtGui -isystem /usr/include/qt6/QtSvg -isystem /usr/include/qt6/QtNetwork -isystem /usr/include/qt6/QtWidgets -O3 -DNDEBUG -std=c++17 -mno-direct-extern-access -MD -MT CMakeFiles/qv2ray.dir/src/ui/widgets/TagLineEditorWidget.cpp.o -MF CMakeFiles/qv2ray.dir/src/ui/widgets/TagLineEditorWidget.cpp.o.d -o CMakeFiles/qv2ray.dir/src/ui/widgets/TagLineEditorWidget.cpp.o -c ..../Qv2ray/src/ui/widgets/TagLineEditorWidget.cpp
..../Qv2ray/src/ui/widgets/TagLineEditorWidget.cpp: In lambda function:
..../Qv2ray/src/ui/widgets/TagLineEditorWidget.cpp:23:80: error: converting to ‘TagEntryWidget::QPrivateSignal’ from initializer list would use explicit constructor ‘constexpr TagEntryWidget::QPrivateSignal::QPrivateSignal()’
   23 |     connect(deleteAction, &QAction::triggered, this, [this] { emit OnTagDeleted(text, {}); });
      |                                                                    ~~~~~~~~~~~~^~~~~~~~~~
In file included from /usr/include/qt6/QtCore/qnamespace.h:13,
                 from /usr/include/qt6/QtCore/qobjectdefs.h:12,
                 from /usr/include/qt6/QtCore/qobject.h:10,
                 from /usr/include/qt6/QtWidgets/qlayout.h:8,
                 from /usr/include/qt6/QtWidgets/QLayout:1,
                 from ..../Qv2ray/src/components/FlowLayout/FlowLayout.hpp:3,
                 from ..../Qv2ray/src/ui/widgets/TagLineEditorWidget.hpp:3,
                 from ..../Qv2ray/src/ui/widgets/TagLineEditorWidget.cpp:1:
..../Qv2ray/src/ui/widgets/TagLineEditorWidget.hpp:13:5: note: ‘constexpr TagEntryWidget::QPrivateSignal::QPrivateSignal()’ declared here
   13 |     Q_OBJECT
      |     ^~~~~~~~

I also tried to build qv2ray-git package from AUR but it produces 1st error (uvw's Loop related)

How to properly build this on Linux?

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

1 participant