qgroundcontrol icon indicating copy to clipboard operation
qgroundcontrol copied to clipboard

QGroundControl(QT 6.6.3) build on Jetson Orin Nano failed

Open lida2003 opened this issue 1 year ago • 5 comments

Is there anything I missed here?

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.4 LTS
Release:        22.04
Codename:       jammy

$ tar -xpf qt-everywhere-src-6.6.3.tar.xz
$ cd qt-everywhere-src-6.6.3/
$ ./configure -xcb -skip qtwebengine

failed with following log:

CMake Error at qtbase/cmake/QtBuildInformation.cmake:523 (message):
  Feature "xcb": Forcing to "ON" breaks its condition:

      QT_FEATURE_thread AND TARGET XCB::XCB AND TEST_xcb_syslibs AND QT_FEATURE_xkbcommon_x11

  Condition values dump:

      QT_FEATURE_thread = "ON"
      TARGET XCB::XCB found
      TEST_xcb_syslibs = "FALSE"
      QT_FEATURE_xkbcommon_x11 not evaluated

Call Stack (most recent call first):
  qtbase/cmake/QtFeature.cmake:317 (qt_configure_add_report_error)
  qtbase/cmake/QtFeature.cmake:437 (qt_feature_check_and_save_internal_value)
  qtbase/cmake/QtFeature.cmake:706 (qt_evaluate_feature)
  qtbase/cmake/QtFeature.cmake:675 (qt_feature_module_end)
  qtbase/src/CMakeLists.txt:13 (qt_feature_evaluate_features)

cat "/home/daniel/Work/qt-everywhere-src-6.6.3/CMakeFiles/CMakeError.log"

int main(int /*argc*/, char ** /*argv*/)
{

    UaPlatformLayer::init();
    UaSession *session = new UaSession;

    UaPlatformLayer::cleanup();
    return 0;
}
Performing C++ SOURCE FILE Test HAVE_libhybris_egl_server failed with the following output:
Change Dir: /home/daniel/Work/qt-everywhere-src-6.6.3/CMakeFiles/CMakeTmp

Run Build Command(s):/usr/bin/ninja cmTC_0cc59 && [1/2] Building CXX object CMakeFiles/cmTC_0cc59.dir/src.cxx.o
FAILED: CMakeFiles/cmTC_0cc59.dir/src.cxx.o
/usr/lib/ccache/c++ -DHAVE_libhybris_egl_server  -fPIE -std=gnu++17 -o CMakeFiles/cmTC_0cc59.dir/src.cxx.o -c /home/daniel/Work/qt-everywhere-src-6.6.3/CMakeFiles/CMakeTmp/src.cxx
/home/daniel/Work/qt-everywhere-src-6.6.3/CMakeFiles/CMakeTmp/src.cxx:4:10: fatal error: hybris/eglplatformcommon/hybris_nativebufferext.h: No such file or directory
    4 | #include <hybris/eglplatformcommon/hybris_nativebufferext.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
ninja: build stopped: subcommand failed.


Source file was:

#include <EGL/egl.h>
#include <EGL/eglext.h>
#include <hybris/eglplatformcommon/hybris_nativebufferext.h>

int main(int argc, char **argv)
{
    (void)argc; (void)argv;
    /* BEGIN TEST: */
#ifdef EGL_HYBRIS_native_buffer
return 0;
#else
#error Requires EGL_HYBRIS_native_buffer to be defined
return 1;
#endif
    /* END TEST: */
    return 0;
}

lida2003 avatar May 13 '24 13:05 lida2003

Do a search for: target_compile_definitions(qmlglsink PRIVATE HAVE_QT_X11) and comment it out

HTRamsey avatar May 13 '24 17:05 HTRamsey

Do a search for: target_compile_definitions(qmlglsink PRIVATE HAVE_QT_X11) and comment it out

I didn't find any line above in 6.6.3 source code.

Does this something to do with Qmlglsink Build Fixes

Maybe I should use latest master code.

lida2003 avatar May 14 '24 00:05 lida2003

its in qgroundcontrol/cmake/BuildGstQtPlugin.cmake

HTRamsey avatar May 14 '24 02:05 HTRamsey

its in qgroundcontrol/cmake/BuildGstQtPlugin.cmake

It seems QT6.6.3 doesn't have this file BuildGstQtPlugin.cmake

daniel@daniel-nvidia:~/Work/qt-everywhere-src-6.6.3$ ls cmake/
ECMOptionalAddSubdirectory.cmake  QtSynchronizeRepo.cmake  QtTopLevelHelpers.cmake

EDIT:

@HTRamsey I think I have mis-lead your think that I'm building QGroundContrl. Actually, I'm compiling QT 6.6.3, which follows https://docs.qgroundcontrol.com/master/en/qgc-dev-guide/getting_started/index.html

图片

lida2003 avatar May 14 '24 03:05 lida2003

你好, 我使用Qt6.6.3编译环境, git master源码 , 但是,编译运行成功后 标题是 QGC Daily 我不太知道 我编译运行的是不是正确的,看到您这边使用相同的环境 所以想请教一下 我的是否正确 a

jinglebang avatar May 16 '24 02:05 jinglebang

closing in favor of duplicate #11614

HTRamsey avatar Jun 13 '24 19:06 HTRamsey