Using CMake to build Qt projects for Linux
This tutorial shows how to use CMake to create Qt-based projects with VisualGDB. If you don’t have Qt installed on your Linux machine, install it (e.g. by running “sudo apt-get install qt5-default” on Debian-based distros).
Before you begin, install VisualGDB 5.5 or later.
- Start Visual Studio and open VisualGDB Linux Project Wizard:
- Enter the name and location of your project:
- Select “New Project -> Qt” and, ensure you are using “Qt5-based application (CMake)” as the project template and check the “Use the advanced CMake Project Subsystem” checkbox:
- On the next page of the wizard select whether you would like to build the project directly on the target, or use a cross-toolchain:If you are new to Qt development, we advise starting with building the project directly on the target. If you are using Raspberry Pi or any other board that is directly supported by VisualGDB, you can choose the corresponding cross-toolchain and VisualGDB will automatically copy the necessary files to it. If you are using a 3rd-party cross-toolchain, follow the toolchain vendor’s instructions to copy the Qt-related headers and libraries to the location where your Linux distro and the toolchain expects them.
- Press “Finish” to create the project. VisualGDB will automatically reference the Qt framework from the CMakeLists.txt file and will create a basic Qt window. Note that as the project is not built yet, the generated UI files will be missing:
- Build the project by pressing Ctrl-Shift-B. If you reopen the main source file, generated UI headers will be located successfully:
- Press F5 to start debugging. VisualGDB will launch the Qt application on the target and will automatically display its GUI on the Windows machine using the SSH X11 forwarding:
- You can set the breakpoints, step through the code and use the other debugging functionality:
- VisualGDB CMake projects are fully self-contained and can be built on any machine with CMake (all changes made via Visual Studio GUI will be automatically applied to the CMakeLists.txt files). Now we will show how to find out the exact command line used by VisualGDB to configure and build the project using the VisualGDB Build window. Right-click on the project and select “Reload CMake Project”:
- Go to the VisualGDB Build window, locate the CMake configuration line, right-click on it and select “Dump Command Line to Batch File”:
- Build the project and dump the build command line to a different batch file:
- The batch files will contain all the necessary environment setup and command lines required to build the project from scratch, e.g.:
12345cd /d C:\tutorials\visualgdb\Linux\Qt5CMakeDemo/VisualGDB/Debugset LANG=en_US.UTF-8set PATH=C:\SysGCC\raspberry\bin;%PATH%set TOOLCHAIN_ROOT=C:/SysGCC/raspberry"C:\Users\virtual.SYSPROGS\AppData\Local\VisualGDB\CMake\bin\cmake.exe" ../.. -G "Ninja" -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_COLOR_MAKEFILE=OFF -DTOOLCHAIN_ROOT=C:/SysGCC/raspberry -DCMAKE_TOOLCHAIN_FILE=C:/tutorials/visualgdb/Linux/Qt5CMakeDemo/toolchain.cmake -DCMAKE_MAKE_PROGRAM="C:/Program Files (x86)/Sysprogs/VisualGDB/ninja.exe"
You can build the project outside VisualGDB by running the batch files one after another:
- This will produce the same results as building it from Visual Studio: