Creating a C/C++ project
You use the New Project wizard to create a C or C++ project, which can be one of these varieties:
- QNX C ProjectQNX C++ Project
- A C or C++ project for multiple target platforms. It supports the QNX-specific project structure using common.mk files to perform a QNX recursive make. A QNX Project can automatically build either one executable or one library object (in different formats). You can switch between application or library nature by using the project properties.
- C ProjectC++ Project
- Depending on the project type you specify, it will provide one of the following:
- Executable — Provides an executable application. This project type folder contains three templates.
- Empty Project
— A single source project folder that doesn't contain any files. After specifying an Executable template, the workbench creates a project with only the metadata files required for your project type. Now, you can modify these source files, as required, and provide the source files for the project's target. Note that for an Executable project type, a makefile is automatically created for you.
- Hello World C++ Project
— A basic C or C++ application with main(). The result is a project that uses a standard Makefile and GNU make to build the source files. You don't get the added functionality of the QNX build organization and the common.mk file, but these projects adapt well to your existing code that you wish to bring into the IDE. (For more about Makefiles and the
utility, see the Conventions for Recursive Makefiles and Directories chapter in the Neutrino Programmer's Guide.)
- Shared Library
— An executable module compiled and linked separately. When you create a project that uses a shared library (libxx.so), you define your shared library's project as a Project Reference for your application. For this project type, the CDT combines object files together and joins them so they're relocatable and can be shared by many processes. Shared libraries are named using the format libxx.so.version, where version is a number with a default of 1. The libxx.so file usually is a symbolic link to the latest version. The makefile for this project type is automatically created by the CDT.
- Static Library
— A collection of object files that you can link into another application (libxx.a). The CDT combines object files (i.e. *.o) into an archive (*.a) that is directly linked into an executable. The makefile for this project type is automatically created by the CDT.
- Makefile Project
— Creates an empty project without any metadata files. This template type is useful for importing and modifying existing makefile-based projects; a new makefile is not created for this project type. By default, the Toolchain and template types that currently show up in the lists are based on the language support for the project type that you selected.
As a rule, the IDE provides UI elements to control most of the build properties of QNX projects.
The module.dep and module.mk files are created for every project subdirectory. These files are required for your managed make projects to build successfully.