Jump to content

LNM on Raspberry Pi 4. How to compile.


Recommended Posts

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

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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

  • Like 1
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

 

 

Link to comment
Share on other sites

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

  • Like 2
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...