[GH-ISSUE #102] Support for running on ARM. #61

Open
opened 2026-05-05 11:02:55 -06:00 by gitea-mirror · 18 comments
Owner

Originally created by @MaxMommersteeg on GitHub (Dec 27, 2018).
Original GitHub issue: https://github.com/qmlnet/qmlnet/issues/102

If Qt can run on arm (for example a Raspberry Pi) should we support it? Would performance be reasonable enough?

Was publishing my app with dotnet publish -r linux-arm and running with dotnet [app_name].dll but resulted in an exception Could not find Qml.Net library or something like that.

Originally created by @MaxMommersteeg on GitHub (Dec 27, 2018). Original GitHub issue: https://github.com/qmlnet/qmlnet/issues/102 If Qt can run on arm (for example a Raspberry Pi) should we support it? Would performance be reasonable enough? Was publishing my app with `dotnet publish -r linux-arm` and running with `dotnet [app_name].dll` but resulted in an exception `Could not find Qml.Net library` or something like that.
Author
Owner

@pauldotknopf commented on GitHub (Dec 27, 2018):

It is possible currently, you just need to compile libQmlNet.so yourself.

I think it's a bit too early to provide precompiled binaries for it though. Maybe in the future.

<!-- gh-comment-id:450242844 --> @pauldotknopf commented on GitHub (Dec 27, 2018): It is possible currently, you just need to compile ```libQmlNet.so``` yourself. I think it's a bit too early to provide precompiled binaries for it though. Maybe in the future.
Author
Owner

@seebosmile commented on GitHub (Feb 11, 2019):

result I try running on raspbery pi3

~/Desktop/netcoreapp2.2/publish /dotnet PhotoFrame.App.dll

Unhandled Exception: System.TypeInitializationException: The type initializer for 'Qml.Net.Internal.Interop' threw an exception. ---> System.Exception: Couldn't find the native Qml.Net library.
at Qml.Net.Internal.Interop..cctor()
--- End of inner exception stack trace ---
at Qml.Net.Internal.Qml.NetVariantList..ctor()
at Qml.Net.QGuiApplication.Create(List`1 args)
at Qml.Net.QGuiApplication..ctor(String[] args)
at PhotoFrame.App.Program.Main(String[] args) in D:\Hardware\Raspbery PI\qmlnet-develop\qmlnet-develop\samples\PhotoFrame\PhotoFrame.App\Program.cs:line 25
Aborted

<!-- gh-comment-id:462234040 --> @seebosmile commented on GitHub (Feb 11, 2019): result I try running on raspbery pi3 ~/Desktop/netcoreapp2.2/publish /dotnet PhotoFrame.App.dll Unhandled Exception: System.TypeInitializationException: The type initializer for 'Qml.Net.Internal.Interop' threw an exception. ---> System.Exception: Couldn't find the native Qml.Net library. at Qml.Net.Internal.Interop..cctor() --- End of inner exception stack trace --- at Qml.Net.Internal.Qml.NetVariantList..ctor() at Qml.Net.QGuiApplication.Create(List`1 args) at Qml.Net.QGuiApplication..ctor(String[] args) at PhotoFrame.App.Program.Main(String[] args) in D:\Hardware\Raspbery PI\qmlnet-develop\qmlnet-develop\samples\PhotoFrame\PhotoFrame.App\Program.cs:line 25 Aborted
Author
Owner

@seebosmile commented on GitHub (Feb 11, 2019):

i try to compile Native On raspberypi 3 , but problem on compile

pi@kiosk:~/Desktop/QmlNet/native $ qmake --version
QMake version 3.0
Using Qt version 5.7.1 in /usr/lib/arm-linux-gnueabihf

pi@kiosk:~/Desktop/QmlNet/native $ sudo sh build.sh
Project ERROR: Unknown module(s) in QT: quickcontrols2
make: *** No targets specified and no makefile found. Stop.
make: *** No rule to make target 'install'. Stop.

<!-- gh-comment-id:462242146 --> @seebosmile commented on GitHub (Feb 11, 2019): i try to compile Native On raspberypi 3 , but problem on compile ================== pi@kiosk:~/Desktop/QmlNet/native $ qmake --version QMake version 3.0 Using Qt version 5.7.1 in /usr/lib/arm-linux-gnueabihf pi@kiosk:~/Desktop/QmlNet/native $ sudo sh build.sh Project ERROR: Unknown module(s) in QT: quickcontrols2 make: *** No targets specified and no makefile found. Stop. make: *** No rule to make target 'install'. Stop.
Author
Owner

@ernest-morariu commented on GitHub (Mar 1, 2019):

We would like to use your library on Yocto ARM.
I managed to compile the native layer, libQmlNet.so, for Yocto ARM & QT 5.12 by running your build.sh.
Inside the folder "output' I got:

  • libQmlNet.so
  • lib
  • plugins
  • qml

However, using these new binaries into the project Features doesn't seem to be that easy. I will probably do a 'portable' dotnet publish because that creates a 'runtimes' subfolder that contains that contains target specific subfolders with a structure similar to what I got from build.sh.
This kind of publish doesn't create the executable, so to run it i need netcore2.2 on Yocto.

The next step would be to install netcore2.2 on Yocto; this task doesn't seem easy either. I found a link that explains how to do it for netcore2.0. I hope it will work for 2.2, as well.
https://github.com/dotnet/core/blob/master/samples/YoctoInstructions.md

<!-- gh-comment-id:468728591 --> @ernest-morariu commented on GitHub (Mar 1, 2019): We would like to use your library on Yocto ARM. I managed to compile the native layer, libQmlNet.so, for Yocto ARM & QT 5.12 by running your build.sh. Inside the folder "output' I got: - libQmlNet.so - lib - plugins - qml However, using these new binaries into the project Features doesn't seem to be that easy. I will probably do a 'portable' dotnet publish because that creates a 'runtimes' subfolder that contains that contains target specific subfolders with a structure similar to what I got from build.sh. This kind of publish doesn't create the executable, so to run it i need netcore2.2 on Yocto. The next step would be to install netcore2.2 on Yocto; this task doesn't seem easy either. I found a link that explains how to do it for netcore2.0. I hope it will work for 2.2, as well. [https://github.com/dotnet/core/blob/master/samples/YoctoInstructions.md](url)
Author
Owner

@pauldotknopf commented on GitHub (Mar 1, 2019):

With Yocto, the .NET publishing should touch any native libs. You should build/package the libQmlNet.so into the Yocto distribution like any other recipe.

As for adding dotnet into the Yocto build, use this: https://github.com/pauldotknopf/meta-dotnet

Also, there is a Yocto layer for the native libs of QmlNet here: https://github.com/qmlnet/meta-qmlnet/tree/master/recipes-qmlnet/qmlnet

<!-- gh-comment-id:468731890 --> @pauldotknopf commented on GitHub (Mar 1, 2019): With Yocto, the .NET publishing should touch any native libs. You should build/package the libQmlNet.so into the Yocto distribution like any other recipe. As for adding dotnet into the Yocto build, use this: https://github.com/pauldotknopf/meta-dotnet Also, there is a Yocto layer for the native libs of QmlNet here: https://github.com/qmlnet/meta-qmlnet/tree/master/recipes-qmlnet/qmlnet
Author
Owner

@ed10vi commented on GitHub (Mar 11, 2019):

I managed to build the lib (just the native part) in a Raspberry Pi 3 running Ubuntu 18.10 arm64 using this:
https://bazaar.launchpad.net/~ed10vi86/+junk/qmlnet-native/view/head:/snap/snapcraft.yaml
($ snapcraft prime)

But when I execute dotnet run, it exits with code 139

Using qt 5.11.1 and dotnet 3.0.0-preview3

<!-- gh-comment-id:471478781 --> @ed10vi commented on GitHub (Mar 11, 2019): I managed to build the lib (just the native part) in a Raspberry Pi 3 running Ubuntu 18.10 arm64 using this: https://bazaar.launchpad.net/~ed10vi86/+junk/qmlnet-native/view/head:/snap/snapcraft.yaml ($ snapcraft prime) But when I execute dotnet run, it exits with code 139 Using qt 5.11.1 and dotnet 3.0.0-preview3
Author
Owner

@pauldotknopf commented on GitHub (Mar 11, 2019):

Exit code 139 is a segfault.

Can you grab the core dump, and get me a stack trace?

<!-- gh-comment-id:471533104 --> @pauldotknopf commented on GitHub (Mar 11, 2019): Exit code 139 is a segfault. Can you grab the core dump, and get me a stack trace?
Author
Owner

@ed10vi commented on GitHub (Mar 11, 2019):

This?

(gdb) bt full
#0  0x0000ffff8e01ff2c in _dl_debug_initialize (ldbase=ldbase@entry=0, ns=-2)
    at dl-debug.c:57
        r = 0xffff8e03ef88
#1  0x0000ffff8e0233e8 in _dl_open (
    file=0x38ca4af0 "/home/edv/dev/qtq-tst/qtq-tst/bin/Debug/netcoreapp3.0/runtimes/linux-arm64/native/libQmlNet.so", mode=-2147483646,
    caller_dlopen=0xffff145db1b0, nsid=<optimized out>, argc=1,
    argv=0xffffeeb7a198, env=<optimized out>) at dl-open.c:632
        args = {
          file = 0x38ca4af0 "/home/edv/dev/qtq-tst/qtq-tst/bin/Debug/netcoreapp3.0/runtimes/linux-arm64/native/libQmlNet.so", mode = -2147483646,
          caller_dlopen = 0xffff145db1b0, caller_dl_open = 0xffff8d86b014,
          map = 0x0, nsid = -2, argc = 1, argv = 0xffffeeb7a198,
          env = 0xffffeeb7a1a8}
        exception = {objname = 0xfffeec00493f "dlopen",
          errstring = 0xfffeec004930 "invalid caller",
          message_buffer = 0xfffeec004930 "invalid caller"}
        errcode = 0
        __PRETTY_FUNCTION__ = "_dl_open"
#2  0x0000ffff8d86b014 in ?? ()
   from /home/edv/dev/qtq-tst/qtq-tst/bin/Debug/netcoreapp3.0/runtimes/linux-arm64/native/lib/libdl.so
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#3  0x0000ffff8e038f10 in ?? ()
No symbol table info available.
Backtrace stopped: not enough registers or memory available to unwind further```
<!-- gh-comment-id:471577036 --> @ed10vi commented on GitHub (Mar 11, 2019): This? ``` (gdb) bt full #0 0x0000ffff8e01ff2c in _dl_debug_initialize (ldbase=ldbase@entry=0, ns=-2) at dl-debug.c:57 r = 0xffff8e03ef88 #1 0x0000ffff8e0233e8 in _dl_open ( file=0x38ca4af0 "/home/edv/dev/qtq-tst/qtq-tst/bin/Debug/netcoreapp3.0/runtimes/linux-arm64/native/libQmlNet.so", mode=-2147483646, caller_dlopen=0xffff145db1b0, nsid=<optimized out>, argc=1, argv=0xffffeeb7a198, env=<optimized out>) at dl-open.c:632 args = { file = 0x38ca4af0 "/home/edv/dev/qtq-tst/qtq-tst/bin/Debug/netcoreapp3.0/runtimes/linux-arm64/native/libQmlNet.so", mode = -2147483646, caller_dlopen = 0xffff145db1b0, caller_dl_open = 0xffff8d86b014, map = 0x0, nsid = -2, argc = 1, argv = 0xffffeeb7a198, env = 0xffffeeb7a1a8} exception = {objname = 0xfffeec00493f "dlopen", errstring = 0xfffeec004930 "invalid caller", message_buffer = 0xfffeec004930 "invalid caller"} errcode = 0 __PRETTY_FUNCTION__ = "_dl_open" #2 0x0000ffff8d86b014 in ?? () from /home/edv/dev/qtq-tst/qtq-tst/bin/Debug/netcoreapp3.0/runtimes/linux-arm64/native/lib/libdl.so No symbol table info available. ---Type <return> to continue, or q <return> to quit--- #3 0x0000ffff8e038f10 in ?? () No symbol table info available. Backtrace stopped: not enough registers or memory available to unwind further```
Author
Owner

@pauldotknopf commented on GitHub (Apr 16, 2019):

See this comment about adding support for ARM.

@ed10vi, sorry for the delay, back that segfault looks unrelated to Qml.Net.

<!-- gh-comment-id:483642684 --> @pauldotknopf commented on GitHub (Apr 16, 2019): See [this](https://github.com/qmlnet/qmlnet/pull/115#issuecomment-483024188) comment about adding support for ARM. @ed10vi, sorry for the delay, back that segfault looks unrelated to Qml.Net.
Author
Owner

@noomio commented on GitHub (Aug 30, 2019):

With Yocto, the .NET publishing should touch any native libs. You should build/package the libQmlNet.so into the Yocto distribution like any other recipe.

As for adding dotnet into the Yocto build, use this: https://github.com/pauldotknopf/meta-dotnet

Also, there is a Yocto layer for the native libs of QmlNet here: https://github.com/qmlnet/meta-qmlnet/tree/master/recipes-qmlnet/qmlnet

Hi,

I tried this for a linux-arm and got the following error below. Can you please advise you to fix this?

e/c++/6.4.0/map:60:0,
|                  from ../recipe-sysroot/usr/include/qt5/QtCore/qmetatype.h:55,
|                  from ../recipe-sysroot/usr/include/qt5/QtCore/qobject.h:54,
|                  from ../recipe-sysroot/usr/include/qt5/QtQml/qqmlengine.h:44,
|                  from ../recipe-sysroot/usr/include/qt5/QtQml/QQmlEngine:1,
|                  from ../git/src/native/QmlNet/QmlNet/qml/NetValue.cpp:1:
| /home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/0.3.0-r0/recipe-sysroot/usr/include/c++/6.4.0/bits/stl_tree.h: In member function 'std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_hint_unique_pos(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator, const key_type&) [with _Key = long long unsigned int; _Val = std::pair<const long long unsigned int, NetValue*>; _KeyOfValue = std::_Select1st<std::pair<const long long unsigned int, NetValue*> >; _Compare = std::less<long long unsigned int>; _Alloc = std::allocator<std::pair<const long long unsigned int, NetValue*> >]':
| /home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/0.3.0-r0/recipe-sysroot/usr/include/c++/6.4.0/bits/stl_tree.h:1928:5: note: parameter passing for argument of type 'std::_Rb_tree<long long unsigned int, std::pair<const long long unsigned int, NetValue*>, std::_Select1st<std::pair<const long long unsigned int, NetValue*> >, std::less<long long unsigned int>, std::allocator<std::pair<const long long unsigned int, NetValue*> > >::const_iterator {aka std::_Rb_tree_const_iterator<std::pair<const long long unsigned int, NetValue*> >}' will change in GCC 7.1
|      _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
|      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| In file included from ../recipe-sysroot/usr/include/qt5/QtQml/5.9.7/QtQml/private/qv4functionobject_p.h:53:0,
|                  from ../git/src/native/QmlNet/QmlNet/qml/JsNetArray.h:5,
|                  from ../git/src/native/QmlNet/QmlNet/qml/JsNetArray510.cpp:1:
| ../recipe-sysroot/usr/include/qt5/QtQml/5.9.7/QtQml/private/qv4object_p.h:182:1: error: invalid conversion from 'bool (*)(QV4::Managed*, uint, const QV4::Value&) {aka bool (*)(QV4::Managed*, unsigned int, const QV4::Value&)}' to 'void (*)(QV4::Managed*, uint, const QV4::Value&) {aka void (*)(QV4::Managed*, unsigned int, const QV4::Value&)}' [-fpermissive]
|  }
|  ^
| ../recipe-sysroot/usr/include/qt5/QtQml/5.9.7/QtQml/private/qv4object_p.h:186:1: note: in expansion of macro 'DEFINE_OBJECT_VTABLE_BASE'
|  DEFINE_OBJECT_VTABLE_BASE(classname) \
|  ^~~~~~~~~~~~~~~~~~~~~~~~~
| ../git/src/native/QmlNet/QmlNet/qml/JsNetArray510.cpp:12:1: note: in expansion of macro 'DEFINE_OBJECT_VTABLE'
|  DEFINE_OBJECT_VTABLE(NetArray);
|  ^~~~~~~~~~~~~~~~~~~~
| Makefile:3630: recipe for target 'JsNetArray510.o' failed
| make: *** [JsNetArray510.o] Error 1
<!-- gh-comment-id:526415149 --> @noomio commented on GitHub (Aug 30, 2019): > With Yocto, the .NET publishing should touch any native libs. You should build/package the libQmlNet.so into the Yocto distribution like any other recipe. > > As for adding dotnet into the Yocto build, use this: https://github.com/pauldotknopf/meta-dotnet > > Also, there is a Yocto layer for the native libs of QmlNet here: https://github.com/qmlnet/meta-qmlnet/tree/master/recipes-qmlnet/qmlnet Hi, I tried this for a linux-arm and got the following error below. Can you please advise you to fix this? ``` e/c++/6.4.0/map:60:0, | from ../recipe-sysroot/usr/include/qt5/QtCore/qmetatype.h:55, | from ../recipe-sysroot/usr/include/qt5/QtCore/qobject.h:54, | from ../recipe-sysroot/usr/include/qt5/QtQml/qqmlengine.h:44, | from ../recipe-sysroot/usr/include/qt5/QtQml/QQmlEngine:1, | from ../git/src/native/QmlNet/QmlNet/qml/NetValue.cpp:1: | /home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/0.3.0-r0/recipe-sysroot/usr/include/c++/6.4.0/bits/stl_tree.h: In member function 'std::pair<std::_Rb_tree_node_base*, std::_Rb_tree_node_base*> std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::_M_get_insert_hint_unique_pos(std::_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::const_iterator, const key_type&) [with _Key = long long unsigned int; _Val = std::pair<const long long unsigned int, NetValue*>; _KeyOfValue = std::_Select1st<std::pair<const long long unsigned int, NetValue*> >; _Compare = std::less<long long unsigned int>; _Alloc = std::allocator<std::pair<const long long unsigned int, NetValue*> >]': | /home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/0.3.0-r0/recipe-sysroot/usr/include/c++/6.4.0/bits/stl_tree.h:1928:5: note: parameter passing for argument of type 'std::_Rb_tree<long long unsigned int, std::pair<const long long unsigned int, NetValue*>, std::_Select1st<std::pair<const long long unsigned int, NetValue*> >, std::less<long long unsigned int>, std::allocator<std::pair<const long long unsigned int, NetValue*> > >::const_iterator {aka std::_Rb_tree_const_iterator<std::pair<const long long unsigned int, NetValue*> >}' will change in GCC 7.1 | _Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>:: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | In file included from ../recipe-sysroot/usr/include/qt5/QtQml/5.9.7/QtQml/private/qv4functionobject_p.h:53:0, | from ../git/src/native/QmlNet/QmlNet/qml/JsNetArray.h:5, | from ../git/src/native/QmlNet/QmlNet/qml/JsNetArray510.cpp:1: | ../recipe-sysroot/usr/include/qt5/QtQml/5.9.7/QtQml/private/qv4object_p.h:182:1: error: invalid conversion from 'bool (*)(QV4::Managed*, uint, const QV4::Value&) {aka bool (*)(QV4::Managed*, unsigned int, const QV4::Value&)}' to 'void (*)(QV4::Managed*, uint, const QV4::Value&) {aka void (*)(QV4::Managed*, unsigned int, const QV4::Value&)}' [-fpermissive] | } | ^ | ../recipe-sysroot/usr/include/qt5/QtQml/5.9.7/QtQml/private/qv4object_p.h:186:1: note: in expansion of macro 'DEFINE_OBJECT_VTABLE_BASE' | DEFINE_OBJECT_VTABLE_BASE(classname) \ | ^~~~~~~~~~~~~~~~~~~~~~~~~ | ../git/src/native/QmlNet/QmlNet/qml/JsNetArray510.cpp:12:1: note: in expansion of macro 'DEFINE_OBJECT_VTABLE' | DEFINE_OBJECT_VTABLE(NetArray); | ^~~~~~~~~~~~~~~~~~~~ | Makefile:3630: recipe for target 'JsNetArray510.o' failed | make: *** [JsNetArray510.o] Error 1 ```
Author
Owner

@pauldotknopf commented on GitHub (Aug 30, 2019):

We don't support Qt 5.9, but I suspect that we could easily support it if you remove the JsNetArray support. It should be easy to carve that out in the source.

<!-- gh-comment-id:526416939 --> @pauldotknopf commented on GitHub (Aug 30, 2019): We don't support Qt 5.9, but I suspect that we could easily support it if you remove the ```JsNetArray``` support. It should be easy to carve that out in the source.
Author
Owner

@noomio commented on GitHub (Aug 30, 2019):

Hi,

I tried to use the latest release by changing the preferred version in layer.conf. I then got the following below. What do you suggest I do? I'm not familiar with yocto much.

| arm-oe-linux-gnueabi-g++  -march=armv7-a -mfpu=neon -mfloat-abi=hard -fstack-protector-strong -pie -fPIE -D_FORTIFY_SOURCE=2 -Wa,--noexecstack -Wformat -Wformat-security -Werror=format-security --sysroot=/home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/git-r0/recipe-sysroot -c -pipe  -O2 -Wa,--noexecstack -fexpensive-optimizations -frename-registers -fomit-frame-pointer -ftree-vectorize   -finline-functions -finline-limit=64   -Wno-error=maybe-uninitialized -Wno-error=unused-result  -fvisibility-inlines-hidden --sysroot=/home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/git-r0/recipe-sysroot -O2 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQMLNET_LIBRARY -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_QUICKCONTROLS2_LIB -DQT_QUICK_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NO_QML_DEBUGGER -DQT_NETWORK_LIB -DQT_TESTLIB_LIB -DQT_CORE_LIB -DQT_TESTCASE_BUILDDIR='"/home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/git-r0/build"' -I../git/src/native/QmlNet -I. -I../git/src/native/QmlNet -I../recipe-sysroot/usr/include/qt5 -I../recipe-sysroot/usr/include/qt5/QtQuickControls2 -I../recipe-sysroot/usr/include/qt5/QtQuick -I../recipe-sysroot/usr/include/qt5/QtWidgets -I../recipe-sysroot/usr/include/qt5/QtGui -I../recipe-sysroot/usr/include/qt5/QtQml -I../recipe-sysroot/usr/include/qt5/QtNetwork -I../recipe-sysroot/usr/include/qt5/QtCore/5.9.7 -I../recipe-sysroot/usr/include/qt5/QtCore/5.9.7/QtCore -I../recipe-sysroot/usr/include/qt5/QtTest -I../recipe-sysroot/usr/include/qt5/QtCore -I. -I../recipe-sysroot/usr/lib/qt5/mkspecs/linux-oe-g++ -o moc_QCoreApplication.o moc_QCoreApplication.cpp
| ../git/src/native/QmlNet/QmlNet/qml/QTest.cpp: In function 'int qtest_qWaitFor(waitForCb, int)':
| ../git/src/native/QmlNet/QmlNet/qml/QTest.cpp:16:19: error: 'qWaitFor' is not a member of 'QTest'
|      auto result = QTest::qWaitFor([&]() {
|                    ^~~~~
| ../git/src/native/QmlNet/QmlNet/qml/QTest.cpp:29:1: warning: control reaches end of non-void function [-Wreturn-type]
|  }
|  ^
| Makefile:3792: recipe for target 'QTest.o' failed
| make: *** [QTest.o] Error 1
| make: *** Waiting for unfinished jobs....
| ERROR: oe_runmake failed
| WARNING: /home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/git-r0/temp/run.do_compile.12982:1 exit 1 from 'exit 1'
| ERROR: Function failed: do_compile (log file is located at /home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/git-r0/temp/log.do_compile.12982)
<!-- gh-comment-id:526420819 --> @noomio commented on GitHub (Aug 30, 2019): Hi, I tried to use the latest release by changing the preferred version in layer.conf. I then got the following below. What do you suggest I do? I'm not familiar with yocto much. ``` | arm-oe-linux-gnueabi-g++ -march=armv7-a -mfpu=neon -mfloat-abi=hard -fstack-protector-strong -pie -fPIE -D_FORTIFY_SOURCE=2 -Wa,--noexecstack -Wformat -Wformat-security -Werror=format-security --sysroot=/home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/git-r0/recipe-sysroot -c -pipe -O2 -Wa,--noexecstack -fexpensive-optimizations -frename-registers -fomit-frame-pointer -ftree-vectorize -finline-functions -finline-limit=64 -Wno-error=maybe-uninitialized -Wno-error=unused-result -fvisibility-inlines-hidden --sysroot=/home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/git-r0/recipe-sysroot -O2 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -DQMLNET_LIBRARY -DQT_DEPRECATED_WARNINGS -DQT_NO_DEBUG -DQT_QUICKCONTROLS2_LIB -DQT_QUICK_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NO_QML_DEBUGGER -DQT_NETWORK_LIB -DQT_TESTLIB_LIB -DQT_CORE_LIB -DQT_TESTCASE_BUILDDIR='"/home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/git-r0/build"' -I../git/src/native/QmlNet -I. -I../git/src/native/QmlNet -I../recipe-sysroot/usr/include/qt5 -I../recipe-sysroot/usr/include/qt5/QtQuickControls2 -I../recipe-sysroot/usr/include/qt5/QtQuick -I../recipe-sysroot/usr/include/qt5/QtWidgets -I../recipe-sysroot/usr/include/qt5/QtGui -I../recipe-sysroot/usr/include/qt5/QtQml -I../recipe-sysroot/usr/include/qt5/QtNetwork -I../recipe-sysroot/usr/include/qt5/QtCore/5.9.7 -I../recipe-sysroot/usr/include/qt5/QtCore/5.9.7/QtCore -I../recipe-sysroot/usr/include/qt5/QtTest -I../recipe-sysroot/usr/include/qt5/QtCore -I. -I../recipe-sysroot/usr/lib/qt5/mkspecs/linux-oe-g++ -o moc_QCoreApplication.o moc_QCoreApplication.cpp | ../git/src/native/QmlNet/QmlNet/qml/QTest.cpp: In function 'int qtest_qWaitFor(waitForCb, int)': | ../git/src/native/QmlNet/QmlNet/qml/QTest.cpp:16:19: error: 'qWaitFor' is not a member of 'QTest' | auto result = QTest::qWaitFor([&]() { | ^~~~~ | ../git/src/native/QmlNet/QmlNet/qml/QTest.cpp:29:1: warning: control reaches end of non-void function [-Wreturn-type] | } | ^ | Makefile:3792: recipe for target 'QTest.o' failed | make: *** [QTest.o] Error 1 | make: *** Waiting for unfinished jobs.... | ERROR: oe_runmake failed | WARNING: /home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/git-r0/temp/run.do_compile.12982:1 exit 1 from 'exit 1' | ERROR: Function failed: do_compile (log file is located at /home/dev/sc20_linux/poky/build/tmp-glibc/work/armv7ahf-neon-oe-linux-gnueabi/qmlnet/git-r0/temp/log.do_compile.12982) ```
Author
Owner

@noomio commented on GitHub (Aug 30, 2019):

Hi,

I removed the QTest.o from the make file and it sucessfully was built. libQmlNet.so was created.
What's needed to be done after this step?

<!-- gh-comment-id:526425479 --> @noomio commented on GitHub (Aug 30, 2019): Hi, I removed the QTest.o from the make file and it sucessfully was built. libQmlNet.so was created. What's needed to be done after this step?
Author
Owner

@pauldotknopf commented on GitHub (Aug 30, 2019):

Looks like qWaitFor isn't supported in 5.9. See here.

There may be more things that aren't present, you'll have to just refer to the docs.

<!-- gh-comment-id:526425947 --> @pauldotknopf commented on GitHub (Aug 30, 2019): Looks like ```qWaitFor``` isn't supported in 5.9. See [here](https://doc.qt.io/qt-5/qtest.html#qWaitFor). There may be more things that aren't present, you'll have to just refer to the docs.
Author
Owner

@noomio commented on GitHub (Aug 30, 2019):

So which QT version is supported 5.10? It's not stated in the readme.

<!-- gh-comment-id:526435807 --> @noomio commented on GitHub (Aug 30, 2019): So which QT version is supported 5.10? It's not stated in the readme.
Author
Owner

@noomio commented on GitHub (Aug 30, 2019):

I was able to build with tag v.0.6.0 against Qt5.9.
Where should you place the *.so on Linux?
I just want to try out before I use the yocto build.

<!-- gh-comment-id:526526930 --> @noomio commented on GitHub (Aug 30, 2019): I was able to build with tag v.0.6.0 against Qt5.9. Where should you place the *.so on Linux? I just want to try out before I use the yocto build.
Author
Owner

@WingedToaster commented on GitHub (Sep 18, 2019):

Anyone care to share their linux-arm build for QmlNet? Or share instructions as to how it's done? I have build host setup on a vm, just not sure what to do next...

<!-- gh-comment-id:532539030 --> @WingedToaster commented on GitHub (Sep 18, 2019): Anyone care to share their linux-arm build for QmlNet? Or share instructions as to how it's done? I have build host setup on a vm, just not sure what to do next...
Author
Owner

@hesa2020 commented on GitHub (Mar 29, 2022):

+1 I would really appreciate some doc on how to compile to project for ARM.

I need to be able to run my qmlnet project on a raspberry pi pretty soon.

<!-- gh-comment-id:1081309359 --> @hesa2020 commented on GitHub (Mar 29, 2022): +1 I would really appreciate some doc on how to compile to project for ARM. I need to be able to run my qmlnet project on a raspberry pi pretty soon.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/qmlnet#61
No description provided.