Akaflieg-Freiburg / enroute

A free navigation app for VFR pilots
https://akaflieg-freiburg.github.io/enroute/
GNU General Public License v3.0
111 stars 28 forks source link

Building the project fails on Arch Linux #329

Closed mgw93 closed 1 year ago

mgw93 commented 1 year ago

Describe the bug Building the project fails on Arch Linux

To Reproduce Attempt to build the linux version according to the instructions. A number of issues will come up. I attempted to solve each of them, but got stuck at a linker error.

Expected behavior Build succeeds

Desktop (please complete the following information):

Additional context A number of issues came up:

and

void GeoMaps::TileServer::missingHandler(const QHttpServerRequest& request, QHttpServerResponder &&responder) { //auto responder = makeResponder(request, socket); responder.write(QHttpServerResponder::StatusCode::NotFound); }

solved the compilation issue. I however don’t know whether this code still does what it’s supposed to do.
- Now the linker fails with the message 
```/usr/bin/ld: qrc_ressources.o: copy relocation against non-copyable protected symbol 
qt_resourceFeatureZstd@@Qt_6' in /usr/lib/libQt6Core.so.6.5.0
collect2: Fehler: ld gab 1 als Ende-Status zurück
make[2]: *** [src/CMakeFiles/enroute.dir/build.make:3945: src/enroute] Fehler 1
make[1]: *** [CMakeFiles/Makefile2:786: src/CMakeFiles/enroute.dir/all] Fehler 2
make: *** [Makefile:136: all] Fehler 2

I personally have no idea how to debug this further. It may also be an issue that I introduced with my earlier changes.

mgw93 commented 1 year ago

I now noticed that the linker error goes away when building with clang instead of gcc. The built app now starts. It however does not show a map, even after downloading map data. image Possibly this is related to the change I needed to make to the TileServer class.

kebekus commented 1 year ago

Dear @mgw93,

Thank you for your report. Compiling the app is difficult because it requires the QtLocation module and the high-performance MapLibre plugin. Currently, these exist only for Qt6.4.3, so you must compile the app with Qt6.4.3. The app you compiled with Qt6.5 does not show a map because the MapLibre plugin is missing.

You might find it instructive to look at the following scripts, which can compile Enroute successfully:

I am looking forward to QtLocation+MapLibre for Qt6.5.x. Once this is out, compilation will become much easier.

Best,

Stefan.

kebekus commented 1 year ago

@mgw93 Thanks again for your report. I am closing this issue now. Feel free to re-open if your problems persist.

Would you be willing to help with the application, perhaps by writing a "How-to-Compile" in the Wiki?