Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
G

gnss-sdr

> 编程语言
Open source

GNSS-SDR, an open-source software-defined GNSS receiver

2.2K stars0 likes1 views
WebsiteGitHub

About

GNSS-SDR, an open-source software-defined GNSS receiver

Welcome to GNSS-SDR!

This program is a software-defined receiver which is able to process (that is, to perform detection, synchronization, demodulation and decoding of the navigation message, computation of observables, and, finally, computation of position fixes) the following Global Navigation Satellite System's signals:

In the L1 band:

  • 🛰 GLONASS L1 C/A (centered at 1602.000 MHz) ✅
  • 🛰 GPS L1 C/A (centered at 1575.420 MHz) ✅
  • 🛰 Galileo E1b/c (centered at 1575.420 MHz) ✅
  • 🛰 BeiDou B1I (centered at 1561.098 MHz) ✅
  • 🛰 QZSS L1 C/A, where available (centered at 1575.420 MHz) ✅

In the E6 band:

  • 🛰 Galileo E6B (centered at 1278.750 MHz) ✅

In the L2 band:

  • 🛰 BeiDou B3I (centered at 1268.520 MHz) ✅
  • 🛰 GLONASS L2 C/A (centered at 1246.000 MHz) ✅
  • 🛰 GPS L2C (centered at 1227.600 MHz) ✅

In the L5 band:

  • 🛰 Galileo E5b (centered at 1207.140 MHz) ✅
  • 🛰 Galileo E5a (centered at 1176.450 MHz) ✅
  • 🛰 GPS L5 (centered at 1176.450 MHz) ✅
  • 🛰 QZSS L5, where available (centered at 1176.450 MHz) ✅

GNSS-SDR provides interfaces for a wide range of radio frequency front-ends and raw sample file formats, generates processing outputs in standard formats, allows for the full inspection of the whole signal processing chain, and offers a framework for the development of new features. Please visit https://gnss-sdr.org for more information about this open-source, software-defined GNSS receiver.

:sparkles: See what's new in the changelog.

Table of Contents

(click to expand)
  • Table of Contents
  • How to build GNSS-SDR
    • GNU/Linux
      • Alternative 1: Install dependencies using software packages
        • Debian / Ubuntu
        • AlmaLinux
        • Arch Linux
        • Fedora
        • openSUSE
        • Rocky Linux
      • Alternative 2: Manual installation of required dependencies
        • Install Armadillo, a C++ linear algebra library
        • Install Gflags, a commandline flags processing module for C++
        • Install Glog, a library that implements application-level logging
        • Install the OpenSSL libraries
        • Install Matio, MATLAB MAT file I/O library
        • Install Protocol Buffers, a portable mechanism for serialization of structured data
        • Install Pugixml, a light-weight C++ XML processing library
        • Download GoogleTest
      • Clone GNSS-SDR's Git repository
      • Build and install GNSS-SDR
        • Build OSMOSDR support (OPTIONAL)
        • Build FMCOMMS2 based SDR Hardware support (OPTIONAL)
        • Build OpenCL support (OPTIONAL)
        • Build CUDA support (OPTIONAL)
    • macOS
      • Macports
      • Homebrew
      • Other package managers
      • Build GNSS-SDR
    • Other builds
  • Updating GNSS-SDR
  • Getting started
  • Using GNSS-SDR
    • Control plane
      • Configuration
      • GNSS block factory
    • Signal Processing plane
      • Signal Source
      • Signal Conditioner
        • Data type adapter
        • Input filter
        • Resampler
      • Channel
        • Acquisition
        • Tracking
        • Decoding of the navigation message
      • Observables
      • Computation of Position, Velocity, and Time
  • About the software license
  • Publications and Credits
  • Ok, now what?

How to build GNSS-SDR

This section describes how to set up the compilation environment in GNU/Linux or macOS / Mac OS X, and to build GNSS-SDR. See also our build and install page.

GNU/Linux

  • Tested distributions: Ubuntu 14.04 LTS and above; Debian 9.0 "stretch" and above; Arch Linux; Fedora 26 and above; OpenSUSE 42.3 and above.
  • Supported microprocessor architectures:
    • amd64: also known as x86-64, the 64-bit version of the x86 instruction set, originally created by AMD and implemented by AMD, Intel, VIA, and others.
    • armel: ARM embedded ABI, supported on ARM v4t and higher.
    • armhf: ARM hard float, ARMv7 + VFP3-D16 floating-point hardware extension + Thumb-2 instruction set and above.
    • arm64: ARM 64 bits or ARMv8. Also known as AArch64.
    • i386: Intel x86 instruction set (32-bit microprocessors).
    • loong64: 64-bit version of LoongArch, a RISC-style instruction set architecture developed by Loongson Technology.
    • mips: MIPS architecture (big-endian, such as those manufactured by SGI).
    • mipsel: MIPS architecture (little-endian, such as Loongson 3).
    • mips64el: 64-bit version of MIPS architecture.
    • powerpc: the RISC 32-bit microprocessor architecture developed by IBM, Motorola (now Freescale), and Apple.
    • ppc64: 64-bit big-endian PowerPC architecture.
    • ppc64el: 64-bit little-endian PowerPC architecture.
    • riscv64: 64-bit RISC-V open standard instruction set architecture.
    • s390x: IBM System z architecture for mainframe computers.

Older distribution releases might work as well, but you will need GCC 4.7 or newer.

Before building GNSS-SDR, you need to install all the required dependencies. There are two alternatives here: through software packages or building them from the source code. It is in general not a good idea to mix both approaches.

Alternative 1: Install dependencies using software packages

If you want to start building and running GNSS-SDR as quickly and easily as possible, the best option is to install all the required dependencies as binary packages.

Debian / Ubuntu

On Debian 14 (Forky) / Ubuntu 26.04 (Resolute) or newer, install the required dependencies with:

bash
$ sudo apt install build-essential cmake git gnuradio-dev gr-limesdr gr-osmosdr \
       libabsl-dev libad9361-dev libarmadillo-dev libblas-dev \
       libboost-chrono-dev libboost-date-time-dev libboost-dev \
       libboost-filesystem-dev libboost-serialization-dev libboost-thread-dev \
       libcpu-features-dev libgtest-dev libiio-dev liblapack-dev libmatio-dev \
       libpcap-dev libprotobuf-dev libpugixml-dev libssl-dev libuhd-dev \
       pkgconf protobuf-compiler python3-mako

On older versions:

bash
$ sudo apt install build-essential cmake git gnuradio-dev gr-limesdr gr-osmosdr \
       libad9361-dev libarmadillo-dev libblas-dev \
       libboost-chrono-dev libboost-date-time-dev libboost-dev \
       libboost-filesystem-dev libboost-serialization-dev libboost-system-dev \
       libboost-thread-dev \
       libcpu-features-dev libgflags-dev libgoogle-glog-dev libgtest-dev libiio-dev \
       liblapack-dev liblog4cpp5-dev libmatio-dev libpcap-dev libprotobuf-dev \
       libpugixml-dev libssl-dev libuhd-dev \
       pkg-config protobuf-compiler python3-mako

Please note that the required files from libgtest-dev were named googletest in Debian 9 "stretch" and Ubuntu 18.04 "bionic", and renamed to libgtest-dev in Debian 10 "buster" and above.

In distributions older than Ubuntu 21.04 Hirsute / Debian 11, the package libcpu-features-dev is not required.

In distributions older than Ubuntu 22.04 Jammy / Debian 12, the package libssl-dev must be replaced by libgnutls-openssl-dev.

In distributions older than Ubuntu 16.04 or Debian 9, python3-mako must be replaced by python-mako. For Ubuntu 14.04, you will need to add the package python-six to the list of dependencies.

Starting from Debian 13 / Ubuntu 25.10, libabsl-dev can replace libgflags-dev and libgoogle-glog-dev.

Once you have installed these packages, you can jump directly to download the source code and build GNSS-SDR.

AlmaLinux

If you are using AlmaLinux:

bash
# dnf update -y
# dnf install -y 'dnf-command(config-manager)'
# dnf config-manager --set-enabled powertools
# dnf install -y epel-release
# dnf install -y armadillo-devel blas-devel boost-chrono \
      boost-date-time boost-devel boost-serialization boost-system boost-thread \
      cmake gcc gcc-c++ git glog-devel gnuradio-devel gmp-devel kernel-devel \
      lapack-devel libarchive libpcap-devel log4cpp-devel matio-devel \
      openssl-devel protobuf-devel pugixml-devel python3-mako uhd-devel make

Once you have installed these packages, you can jump directly to download the source code and build GNSS-SDR.

Arch Linux

If you are using Arch Linux:

bash
$ pacman -S blas boost boost-libs cmake gcc git gnuradio gtest \
       hdf5 lapack libmatio libpcap libvolk make openssl pkgconf \
       protobuf pugixml python-mako

Once you have installed these packages, you can jump directly to download the source code and build GNSS-SDR.

Fedora

If you are using Fedora 26 or above, the required software dependencies can be installed by doing:

bash
$ sudo yum install armadillo-devel automake blas-devel boost-chrono \
       boost-date-time boost-devel boost-filesystem boost-serialization \
       boost-system boost-thread cmake gcc gcc-c++ git gflags-devel \
       glog-devel gnuradio-devel gr-osmosdr-devel kernel-devel lapack-devel \
       libpcap-devel log4cpp-devel matio-devel openssl-devel protobuf-compiler \
       protobuf-devel pugixml-devel python3-mako make

In Fedora 33 and above, you will need to add gmp-devel to the package list. Optionally, you can add uhd-devel starting from Fedora 32.

In Fedora 36 and above, packages spdlog-devel and fmt-devel are also required.

openSUSE

If you are using openSUSE Leap:

bash
$ zypper install armadillo-devel automake boost-devel cmake gcc-c++ git \
       gnuradio-devel hdf5-devel libboost_atomic-devel libboost_chrono-devel \
       libboost_filesystem-devel libboost_serialization-devel libboost_system-devel \
       libboost_thread-devel libmatio-devel libpcap-devel libtool log4cpp-devel \
       openssl-devel pugixml-devel python3-Mako

If you are using openSUSE Tumbleweed:

bash
$ zypper install armadillo-devel automake boost-devel cmake fmt-devel gcc-c++ git \
       gnuradio-devel gtest hdf5-devel libboost_atomic-devel libboost_chrono-devel \
       libboost_date_time-devel libboost_filesystem-devel libboost_serialization-devel \
       libboost_system-devel libboost_thread-devel libopenssl-devel libpcap-devel \
       libtool protobuf-devel pugixml-devel python3-Mako spdlog-devel

Once you have

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C++c-plus-plusgalileoglonassgnss

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言