Skip to content
View in the app

A better way to browse. Learn more.

The AVSIM Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

LNM on Raspberry Pi 4. How to compile.

Featured Replies

1 hour ago, Upkeep said:

I have looked at the file atools.pro, but not sure how to change ATOOLS_NO_CRASHHANDLER=TRUE

On bash before running qmake : export ATOOLS_NO_CRASHHANDLER=TRUE

The environment variable is read when running qmake with atools.pro to build the makefile. I just looked at the code and the include is gated by an #ifdef . Should work ok with env variable set.

Note that you have to set it before building both atools *and* littlenavmap.

Alex

  • Replies 44
  • Views 17.2k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • Very pleased to get it working.  I should have studied more carefully your original suggestion that I looked at the build release coding from the link you provided. So it is me who should apologise 🙂

  • Hi all   I have now uploadet a new version of how to compile and use Little Navmap on Raspberry Pi 4b! Because of the library change  It is not (yet) possible use the Raspberry pi 64 bi

  • Hi all Raspberry Pi has now released a new version of Raspios, "Bullseye" You can again use the official Raspios to compile LittleNavmap! I have updated the Littlenavmap-inst-RPI4_64Bit

Thanks again, Alex, for your help. And the very quick response.

I tried what you sugggested and  sadly Atools still did not compile. Same problem.

This is what I did:

1.

Inserted at the end of .bashrc file in the home folder
export ATOOLS_NO_CRASHHANDLER=TRUE

2.

Saved file and rebooted.

3.

Typed following command in terminal:

cd $APROJECTS
mkdir build-atools-release && cd build-atools-release
qmake ../atools/atools.pro CONFIG+=release
make -j4

4.

Compilation halted:

../atools/src/util/crashhandler.cpp:45:10: fatal error: cpptrace/cpptrace.hpp: No such file or directory
   45 | #include <cpptrace/cpptrace.hpp>
      |          ^~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:2583: crashhandler.o] Error 1

 

I am grateful for your help and you have spent enough time trying to sort this. Maybe  the new version of LNM will not longer work on the Pi and I will now revert to the old version.

Thanks again.

 

Set the environment variable on the command line. Do not set it in .bashrc . This is not needed and the reboot is also not needed.

I tried it here after renaming all my cpptrace dirs to get them out of the way. No problems.

$ export ATOOLS_NO_CRASHHANDLER=TRUE # <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Set variable 
alex@sol:~
$ cd $APROJECTS
alex@sol:~/Projekte
$ cd build-atools-release
/home/alex/Projekte/build-atools-release
alex@sol:~/Projekte/build-atools-release
$ qmake ../atools/atools.pro CONFIG+=release
Project MESSAGE: /home/alex/Projekte/atools/../build_options.pro found.
Project MESSAGE: -----------------------------------
Project MESSAGE: VERSION_NUMBER: 4.0.12
Project MESSAGE: GIT_REVISION: UNKNOWN
Project MESSAGE: GIT_REVISION_FULL: UNKNOWN
Project MESSAGE: GIT_PATH:
Project MESSAGE: WINARCH:
Project MESSAGE: ATOOLS_NO_USERDATA:
Project MESSAGE: ATOOLS_NO_SQL:
Project MESSAGE: ATOOLS_NO_WEATHER:
Project MESSAGE: ATOOLS_NO_TRACK:
Project MESSAGE: ATOOLS_NO_GUI:
Project MESSAGE: ATOOLS_NO_ROUTING:
Project MESSAGE: ATOOLS_NO_WEB:
Project MESSAGE: ATOOLS_NO_FS:
Project MESSAGE: ATOOLS_NO_GRIB:
Project MESSAGE: ATOOLS_NO_WMM:
Project MESSAGE: ATOOLS_NO_NAVSERVER:
Project MESSAGE: ATOOLS_NO_CRASHHANDLER: TRUE # <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Variable confirmed
Project MESSAGE: SIMCONNECT_PATH_WIN32:
Project MESSAGE: SIMCONNECT_PATH_WIN64:
Project MESSAGE: DEFINES: CPPTRACE_STATIC_DEFINE VERSION_NUMBER_ATOOLS=\"4.0.12\" GIT_REVISION_ATOOLS=\"UNKNOWN\" QT_NO_CAST_FROM_BYTEARRAY QT_NO_CAST_TO_ASCII
Project MESSAGE: INCLUDEPATH: /home/alex/Projekte/atools/src /home/alex/Projekte/atools/../cpptrace-release/include
Project MESSAGE: LIBS:
Project MESSAGE: TARGET_NAME: atools
Project MESSAGE: QT_INSTALL_PREFIX: /usr
Project MESSAGE: QT_INSTALL_LIBS: /usr/lib/x86_64-linux-gnu
Project MESSAGE: QT_INSTALL_PLUGINS: /usr/lib/x86_64-linux-gnu/qt5/plugins
Project MESSAGE: QT_INSTALL_TRANSLATIONS: /usr/share/qt5/translations
Project MESSAGE: CONFIG: lex yacc debug exceptions depend_includepath testcase_targets import_plugins import_qpa_plugin file_copies qmake_use qt warn_on release link_prl incremental shared shared release linux unix posix gcc release build_all c++14 staticlib svg widgets force_debug_info
Project MESSAGE: QT: core gui sql xml core network svg widgets
Project MESSAGE: -----------------------------------
alex@sol:~/Projekte/build-atools-release
$ make -j4
/usr/lib/qt5/bin/uic ../atools/src/gui/choicedialog.ui -o ui_choicedialog.h
/usr/lib/qt5/bin/uic ../atools/src/gui/messagebox.ui -o ui_messagebox.h
/usr/lib/qt5/bin/uic ../atools/src/gui/treedialog.ui -o ui_treedialog.h
/usr/lib/qt5/bin/uic ../atools/src/gui/sqlquerydialog.ui -o ui_sqlquerydialog.h
g++ -c -pipe -Wall -Wextra -Wpedantic -Wno-pragmas -Wno-unknown-warning -Wno-unknown-warning-option -Wno-deprecated-copy -Wno-deprecated -Wno-deprecated-declarations -O2 -g -fPIC -std=gnu++1y -Wall -Wextra -D_REENTRANT -DCPPTRACE_STATIC_DEFINE -DVERSION_NUMBER_ATOOLS=\"4.0.12\" -DGIT_REVISION_ATOOLS=\"UNKNOWN\" -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_SQL_LIB -DQT_XML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../atools -I. -I../atools/src -I/home/alex/Projekte/atools/../cpptrace-release/include -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtSvg -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtXml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o atools.o ../atools/src/atools.cpp

...

g++ -c -pipe -Wall -Wextra -Wpedantic -Wno-pragmas -Wno-unknown-warning -Wno-unknown-warning-option -Wno-deprecated-copy -Wno-deprecated -Wno-deprecated-declarations -O2 -g -fPIC -std=gnu++1y -Wall -Wextra -D_REENTRANT -DCPPTRACE_STATIC_DEFINE -DVERSION_NUMBER_ATOOLS=\"4.0.12\" -DGIT_REVISION_ATOOLS=\"UNKNOWN\" -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_SQL_LIB -DQT_XML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I../atools -I. -I../atools/src -I/home/alex/Projekte/atools/../cpptrace-release/include -I/usr/include/x86_64-linux-gnu/qt5 -I/usr/include/x86_64-linux-gnu/qt5/QtSvg -I/usr/include/x86_64-linux-gnu/qt5/QtWidgets -I/usr/include/x86_64-linux-gnu/qt5/QtGui -I/usr/include/x86_64-linux-gnu/qt5/QtSql -I/usr/include/x86_64-linux-gnu/qt5/QtXml -I/usr/include/x86_64-linux-gnu/qt5/QtNetwork -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I. -I. -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -o moc_navserverworker.o moc_navserverworker.cpp
rm -f libatools.a
ar cqs libatools.a atools.o exception.o gpxio.o gpxtypes.o navdatabaseflags.o connecthandler.o datareaderthread.o simconnectaircraft.o simconnectapi.o simconnectdata.o simconnectdatabase.o simconnectdummy.o simconnecthandler.o simconnectreply.o simconnecttypes.o simconnectuseraircraft.o weatherrequest.o xpconnecthandler.o aircraftindex.o coordinates.o fsutil.o morsecode.o tacanfrequencies.o calculations.o line.o linestring.o point3d.o pos.o rect.o spatialindex.o consoleapplication.o abstractinireader.o binarystream.o binaryutil.o fileroller.o inireader.o tempfile.o loggingconfig.o loggingguiabort.o logginghandler.o loggingutil.o settings.o average.o contextsaver.o crashhandler.o csvreader.o filechecker.o fileoperations.o filesystemwatcher.o flags.o heap.o httpdownloader.o locker.o properties.o props.o signalhandler.o simplecrypt.o str.o timedcache.o updatecheck.o updatechecktypes.o version.o xmlstream.o activationcontext.o gzip.o zip.o adler32.o compress.o crc32.o deflate.o gzclose.o gzlib.o gzread.o gzwrite.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o datamanagerbase.o logdatamanager.o userdatamanager.o sqlcolumn.o sqldatabase.o sqlexception.o sqlexport.o sqlquery.o sqlrecord.o sqlscript.o sqltransaction.o sqlutil.o metar.o metarindex.o metarparser.o weathertypes.o noaaweatherdownloader.o weatherdownloadbase.o weathernetdownload.o xpweatherreader.o trackdownloader.o trackreader.o tracktypes.o actionbuttonhandler.o actionstatesaver.o actiontextsaver.o actiontool.o application.o choicedialog.o clicktooltiphandler.o dataexchange.o desktopservices.o dialog.o dockwidgethandler.o errorhandler.o filehistoryhandler.o griddelegate.o helphandler.o itemviewzoomhandler.o listwidgetindex.o mapposhistory.o messagebox.o palettesettings.o signalblocker.o sqlquerydialog.o tabwidgethandler.o tools.o translator.o treedialog.o widgetstate.o widgetutil.o htmlbuilder.o htmlbuilderflags.o paintercontextsaver.o polygontools.o roundedpolygon.o GeomagnetismLibrary.o magdectool.o routenetwork.o routenetworkloader.o routenetworktypes.o httpconnectionhandler.o httpconnectionhandlerpool.o httpcookie.o httpglobal.o httplistener.o httprequest.o httprequesthandler.o httpresponse.o httpsession.o httpsessionstore.o staticfilecontroller.o template.o templatecache.o templateloader.o airport.o approach.o approachleg.o approachtypes.o apron.o apron2.o com.o deleteairport.o deletecom.o deleterunway.o deletestart.o helipad.o jetway.o parking.o runway.o runwayapplights.o runwayend.o runwayvasi.o sidstar.o start.o taxipath.o taxipoint.o transition.o bglbase.o bglfile.o bglposition.o boundary.o boundarysegment.o converter.o header.o airwaysegment.o airwaywaypoint.o dme.o glideslope.o ils.o ilsvor.o localizer.o marker.o navbase.o ndb.o tacan.o vor.o waypoint.o namelist.o namelistentry.o record.o recordtypes.o section.o sectiontype.o subsection.o surface.o util.o airportindex.o binarygeometry.o binarymsageometry.o globereader.o magdecreader.o metadatawriter.o morareader.o procedurewriter.o xpgeometry.o airwayresolver.o airportfilewriter.o airportwriter.o approachlegwriter.o approachwriter.o apronwriter.o comwriter.o deleteprocessor.o helipadwriter.o legbasewriter.o parkingwriter.o runwayendwriter.o runwaywriter.o sidstarapproachlegwriter.o sidstartransitionlegwriter.o sidstartransitionwriter.o sidstarwriter.o startwriter.o taxipathwriter.o transitionlegwriter.o transitionwriter.o databasemeta.o datawriter.o bglfilewriter.o sceneryareawriter.o airwaysegmentwriter.o boundarywriter.o ilswriter.o markerwriter.o ndbwriter.o tacanwriter.o vorwriter.o waypointwriter.o runwayindex.o writerbasebasic.o dfdcompiler.o fspaths.o navdatabase.o navdatabaseerrors.o navdatabaseoptions.o navdatabaseprogress.o onlinedatamanager.o onlinetypes.o statustextparser.o whazzuptextparser.o aircraftperf.o aircraftperfconstants.o aircraftperfhandler.o flightplan.o flightplanconstants.o flightplanentry.o flightplanio.o progresshandler.o addoncfg.o addoncomponent.o addonpackage.o contentxml.o fileresolver.o languagejson.o layoutjson.o manifestjson.o materiallib.o sceneryarea.o scenerycfg.o airspacereaderbase.o airspacereaderivao.o airspacereaderopenair.o airspacereadervatsim.o airwaypostprocess.o scenerypacks.o xpairportmsareader.o xpairportreader.o xpairspacereader.o xpairwayreader.o xpcifpreader.o xpconstants.o xpdatacompiler.o xpfixreader.o xpholdingreader.o xpmorareader.o xpnavreader.o xpreader.o windquery.o windtypes.o routefinder.o cmplxpack.o compack.o comunpack.o dec_jpeg2000.o dec_png.o drstemplates.o enc_jpeg2000.o enc_png.o g2_addfield.o g2_addgrid.o g2_addlocal.o g2_create.o g2_free.o g2_getfld.o g2_gribend.o g2_info.o g2_miss.o g2_unpack1.o g2_unpack2.o g2_unpack3.o g2_unpack4.o g2_unpack5.o g2_unpack6.o g2_unpack7.o gbits.o getdim.o getpoly.o gridtemplates.o int_power.o jpcpack.o jpcunpack.o misspack.o mkieee.o pack_gp.o pdstemplates.o pngpack.o pngunpack.o rdieee.o reduce.o seekgb.o simpack.o simunpack.o specpack.o specunpack.o gribcommon.o gribdownloader.o gribreader.o navserver.o navservercommon.o navserverworker.o qrc_atools.o moc_datareaderthread.o moc_consoleapplication.o moc_loggingguiabort.o moc_logginghandler.o moc_filesystemwatcher.o moc_httpdownloader.o moc_signalhandler.o moc_updatecheck.o moc_datamanagerbase.o moc_noaaweatherdownloader.o moc_weatherdownloadbase.o moc_weathernetdownload.o moc_xpweatherreader.o moc_trackdownloader.o moc_actionbuttonhandler.o moc_application.o moc_choicedialog.o moc_dataexchange.o moc_dockwidgethandler.o moc_filehistoryhandler.o moc_helphandler.o moc_itemviewzoomhandler.o moc_mapposhistory.o moc_messagebox.o moc_sqlquerydialog.o moc_tabwidgethandler.o moc_treedialog.o moc_httpconnectionhandler.o moc_httpconnectionhandlerpool.o moc_httplistener.o moc_httprequesthandler.o moc_httpsessionstore.o moc_staticfilecontroller.o moc_templatecache.o moc_templateloader.o moc_fspaths.o moc_aircraftperfhandler.o moc_windquery.o moc_gribdownloader.o moc_navserver.o moc_navserverworker.o
alex@sol:~/Projekte/build-atools-release
$ ls -lh atools.o
-rw-rw-r-- 1 alex alex 2,5M Okt 17 11:59 atools.o # <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< Output library built

Check if the variable is really set:

$ echo $ATOOLS_NO_CRASHHANDLER
TRUE

Alex

Thanks Alex.

Removed line from .bashrc as suggested.

Then ran the following in terminal:

export ATOOLS_NO_CRASHHANDLER=TRUE

echo command gives TRUE. So OK

 

Then:

cd $APROJECTS
mkdir build-atools-release && cd build-atools-release
qmake ../atools/atools.pro CONFIG+=release
make -j4

This produced the same result - compiling failed, same reason given.

So, attempted to rename cpptrace files in Atools but could only find two files in atools/src/utils. So I renamed them.

Ran all the commands again and got the following during qmake:

......

Project MESSAGE: QT: core gui sql xml core network svg widgets
Project MESSAGE: -----------------------------------
WARNING: Failure to find: src/util/crashhandler.cpp
WARNING: Failure to find: src/util/crashhandler.h

Continued with make -j4 command anyway:

............

Xml -I/usr/include/qt/QtNetwork -I/usr/include/qt/QtCore -I. -I. -I/usr/lib/qt/mkspecs/linux-g++ -o contextsaver.o ../atools/src/util/contextsaver.cpp
make: *** No rule to make target 'src/util/crashhandler.cpp', needed by 'crashhandler.o'.  Stop.
make: *** Waiting for unfinished jobs....

I am grateful for your help, but I really don't want to take up all your time. It is not fair!

Will understand if you want to close thread now.

All the best

Something is cached. Delete all files and folders in build-atools-release. All means also the hidden dot prefixed files. Then try again.
The crashhandler is always included. Even if disabled. Looks like you use the wrong branch or the file structure is broken. Here it is on Github: https://github.com/albar965/atools/blob/release/4.0/src/util/crashhandler.h

Alex

Thanks Alex.

Tried again.

So, I started with a different Raspberry Pi running standard 64 bit OS.  I deleted the cache and deleted the  build-atools-release folder from an earlier attempt.

I downloaded a new version of Atools from the link you just sent and checked crashhandler file was the same.

I then tried to compile starting with the export no crashhandler command first and then the usual commands

Exactly the same problem.  Would not compile.

So went to atools/src/utils and changed the two crashhandler file names and re-ran commands.

Again, no luck.

I think that probably is the end of this exercise and I will therefore revert to earlier, non-crashhandler version for the Pi.

I am very grateful for your help, but I do not want to annoy you by constantly coming back to you with queries!

Thanks again.

P:S: The latest version runs on Windows fine - so I will mostly use that going forward. It is such an excellent piece of software. Thank you.

 

Sorry Alex. Missed your question.

qmake version 3.1, qt version 5.15.8

Sorry, but I'm at a loss now. I compile this here on three different Linux machines and no issues. The difference so far is that I use the libraries and includes from the downloaded Qt packages. Not sure if this can make a difference.

Alex

Thanks, Alex. Have now reverted to 3.0.8 on Pi which works perfectly. I notice there is no crashhandler files in the stools/Sri/utility directory for that version. 
Thanks for trying to sort things out

Regards

Success! Have been able to compile it now.

The answer was that instead of:

export ATOOLS_NO_CRASHHANDLER=TRUE

 

I used the command from your original build script:

export ATOOLS_NO_CRASHHANDLER=${ATOOLS_NO_CRASHHANDLER:-"true"}

I have no idea what the difference is between the two but this did work - before Atools and LNM as you mentioned.

Thank you again for your help.

Regards

1 hour ago, Upkeep said:

Success! Have been able to compile it now.

The answer was that instead of:

export ATOOLS_NO_CRASHHANDLER=TRUE

 

I used the command from your original build script:

export ATOOLS_NO_CRASHHANDLER=${ATOOLS_NO_CRASHHANDLER:-"true"}

I have no idea what the difference is between the two but this did work - before Atools and LNM as you mentioned.

Thank you again for your help.

Oi! You're welcome.

The second bash line checks if the environment variable is defined. It defines it and sets it to "true" if missing.

Looks like stupid me gave wrong advice above. The "true" is case sensitive and I wrote wrongly all in caps. Meh. Sorry.🤕

Alex

 

 

Very pleased to get it working.  I should have studied more carefully your original suggestion that I looked at the build release coding from the link you provided. So it is me who should apologise 🙂

Thanks again. Best wishes

  • Author

I have updated the file on Onedrive now to reflect this change.  It compiles as it should!

/Sten

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.