Compiling GoldenCheetah on Raspberry Pi 4 with Raspbian Buster – free bicycle trainer/analysis software

Ok, I’m still testing, but I have instructions to get GoldenCheetah to compile and run on a Raspberry Pi 4. Please share if you have anything to add/improve. Hopefully this will start the process of getting official Rpi4 instructions added to the project…

If you are not familiar, GoldenCheetah is open source software that will control a smart trainer (wahoo kickr, tacx, etc…) via Ant+ or bluetooth. It will sync rides to/from strava and others. It has amazing (way beyond my ability or interest) performance analysis functions! It can download ride profiles from the free ERG repository. It really does too much to list here. I highly recommend it. Warts and all it still a great piece of software that some great people work hard to support, and it does most everything I need trainer software to do. Oh… and it doesn’t cost me $10 a month in subscription fees. So If I can build a dedicated computer out of a Rpi4 that will run GoldenCheetah for less than $100, then I’m a happy lad!


The main website is The project code is on github. Discussion is on Google Groups.

GoldenCheetah install on Raspberry pi 4 with – Raspbian Buster. I consider this the preferred way to do it. 

I used the 2019-09-26 version from – the middle size software ~ 1.1gigs.

You will need to follow the generic instructions to create a clean Raspbian boot SD card.

IMPORTANT NOTE: This only works for the current release version of GoldenCheetah V3.5.0. The newer betas require some modules that have not been added to the repository for the pi. I will update this article when the modules are available and I can get the pi to compile the current code.

Then let’s get the software up to date:

     $ sudo apt update     {if you have never run apt update it may fail saying library date is in future, just run it again}
     $ sudo apt -yf full-upgrade
     $ sudo apt-get -y –purge autoremove  {that is two dashes in front of purge “–purge”}
     $ sudo apt-get autoclean

     $ sudo timedatectl set-timezone America/Chicago {pick your own time zone, see them all by typing $ timedatectl list-timezones}
     $ sudo reboot now

Install qt sdk and libraries
     $ sudo apt-get install qt5-default qtcreator libqt5svg5-dev libqt5serialport5-dev libqt5charts5-dev qtmultimedia5-dev qtconnectivity5-dev

     $ sudo apt-get install libqt5webkit5-dev libusb-1.0-0-dev libical-dev libvlc-dev libvlccore-dev bison flex

Modify the USB device so you can use your ANT+ USB stick {no need if you are only going to use bluetooth}

     $ cd /etc/udev/rules.d

     $ sudo nano 52-garmin-usb.rules

  • Add (copy/paste) the following six lines to the file:  {there are no spaces before the lines
  • # Garmin ANT+ – USB1
    ATTRS{idVendor}==”0fcf”, ATTRS{idProduct}==”1004″, MODE=”0666″
    # Garmin ANT+ – USB2
    ATTRS{idVendor}==”0fcf”, ATTRS{idProduct}==”1008″, MODE=”0666″
    # hLine USB2 ANT2
    ATTRS{idVendor}==”0fcf”, ATTRS{idProduct}==”1009″, MODE=”0666″
  • exit and save the file

     $ sudo reboot now

Now download the code, make a few changes and start compiling!

     Git should already be installed if not ‘$ sudo apt-get install git’
     $ cd ~
     $ mkdir projects
     $ cd projects
     $ git clone git://
     $ git clone git:// ––branch release_3.5.0
     $ cd GoldenCheetah
     $ cd src
     $ cp gcconfig.pri
     $ nano gcconfig.pri    

  • uncomment line #CONFIG += release
  • uncomment line #QMAKE_LRELEASE = /usr/bin/lrelease
  • uncomment line #QMAKE_CXXFLAGS += -03
  • comment out the line QMAKE_CXXFLAGS_X86_64 = $$QMAKE_CFLAGS_X86_64 by added a ‘#’ in front of it
  • uncomment line #ICAL_INSTALL =
  • Change the value Of the ICAL_INSTALL = (line above this one) to “ICAL_INSTALL = /usr/lib”
  • uncomment line #LIBUSB_INSTALL = /usr/local
  • Change the value Of the LIBUSB_INSTALL (line above this one) to “= /usr/lib” instead of “= /usr/local”
  • uncomment line #LIB_USE_V_1
  • uncomment line #LIBZ_LIBS = -lz

     $ cd ~/projects/GoldenCheetah/qwt

     $ cp qwtconfig.pri

     $ cd ~/projects/GoldenCheetah
     $ qmake -recursive  {if you see a bunch (22 or so) of translation language and missing file errors… you can ignore them}

     $ make

Now just sit back and wait. Should take about 1.5 hours with a good heat sink on a 2 gig Rpi4 :)
When it is all done you will have a GoldenCheetah executable file in your projects/GoldenCheetah/src directory. You can copy it wherever you like, if you want to run it from the command line here just type:

     $ ~/projects/GoldenCheetah/src/GoldenCheetah

I made a Desktop icon on Raspbian by doing the following:

     $ cd ~/Desktop

     $ nano GoldenCheetah.desktop

  • Add (copy/paste) the following ten lines to the file:
  • [Desktop Entry]
    Comment=Built for suffering
  • exit and save

Every time you use the desktop icon it will ask what you want to do with it. Select execute. You can disable this in Raspbian config files, but that is beyond the scope of this howto…..

Enjoy!  :)


7 Responses to “Compiling GoldenCheetah on Raspberry Pi 4 with Raspbian Buster – free bicycle trainer/analysis software”

  1. FreindlyDBA says:

    Nice blog i will have to visit more often and keep up

  2. EvilT says:

    Edited to add support for the iCal (libical). So the diary screen shows now.

  3. KMCdn says:

    Thanks for this guide! I followed it to the letter, but the qmake and make fail with issues relating to some missing QT5 packages. They were widgets, position, and webkit related. I tried various package installs but could only resolve the position issue.

    This is using the larger base OS, but otherwise the same.

    Thanks in advance!

  4. EvilT says:

    I’ve seen this. The current reason is that you are probably trying to compile the current beta code. Unfortunately these modules are not yet available in the pi’s repositories. You can only build the current release version 3.5.0.

    So your ‘git clone’ statement should be
    $ git clone git:// –branch release_3.5.0

    I hope the webkit etc, will be available soon for the Pi. I can already see versions available for armhf in the Debian beta repositories. I will update here and on the GC Wiki when I can get 3.6.0 to compile.

  5. Alain Soucy says:

    Compile first try !
    Good instructions.

    It take approx. 30 minutes with ‘make -j4’ and a Pi4, 4G, a fan, heat sinks. Temperature: 65C.

    GoldenCheetah run realy well.

  6. garrop says:

    Hi there,

    I had been looking for a way to do this for a while now… Thanks for sharing such a complete guide.

    I have not been able to locate “uncomment line #LIBS += -lz” on my gcconfig.pri file. I have uncommented “LIBZ_LIBS = -lz” instead, although not sure I did the right thing.

    The make went swell and GC is up and running. Trying to connect my KICKR Core over BT right now, but it won’t work. Will try later over ANT+ if I manage to find my dongle.

    The purpose of this install is to use for indoor training, so the effort will be mod if the connection is not achieved.

    Just wanted to show my kindest thanks.

  7. EvilT says:

    You are correct sir, it should be ‘LIBZ_LIBS = -lz’. Thanks for the feedback. I will update the post.
    I don’t think the Wahoo supports the FTMS protocol required for standards based BT control. That said, I’m not sure if GC supports trainer control via BT. I still have testing of BT (for sensors only) on my to-do list.
    Should work just fine with ANT+.

Leave a Reply

Line and paragraph breaks automatic.
XHTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Comments Protected by WP-SpamShield Spam Filter