Skip to content

Compile in Windows

srcejon edited this page May 21, 2021 · 27 revisions

Prerequisites

Compile and build package

Run Visual Studio shell: Start > Visual Studio 2019 > x64 Native Tools Command Prompt for VS 2019 Then:

cd %userprofile% (or wherever you want to build that has 10GB free space)
git clone https://github.com/f4exb/sdrangel.git
cd sdrangel
git submodule update --init --recursive
mkdir build
cd build
cmake -Wno-dev -G Ninja -DCMAKE_BUILD_TYPE=Release -DRX_SAMPLE_24BIT=ON -DCMAKE_PREFIX_PATH=C:\Qt\5.15.2\msvc2019_64;C:\boost_1_74_0 ..
ninja
ninja package

This will build the installer .exe

If you do not need support for some SDRs (or you have problems building their libraries), they can be disabled individually with -DENABLE_BLADERF=OFF -DENABLE_IIO=OFF -DENABLE_MIRISDR=OFF ... etc.

After an initial build of 'ninja package', rather than repeatedly building the installer, you can run SDRangel from the build directory, by just running 'ninja' to rebuild then '.\bin\sdrangel' to run.

Passing -DCMAKE_BUILD_TYPE=Debug or -DCMAKE_BUILD_TYPE=RelWithDebInfo (lighter but may be less precise) to the cmake command will create a version that is easier to debug for yourself or the maintainers.

Debugging

To debug using Visual Studio, run:

devenv /DebugExe .\bin\SDRangel.exe 

Notes

MSVC compiles std::string incompatibly for Release and Debug builds, which means you can't mix different builds of libraries that include std::string in their APIs such as the UHD library. There's currently only a Release build of uhd.dll in the sdrangel-windows-externals repo. This will cause an exception if used with a Debug build of SDRangel. As a workaround, you'll need to either delete uhd.dll before debugging, or replace it with a Debug version you've built.

Clone this wiki locally