How the IDE characterizes projects using natures

The IDE associates projects with natures that define the characteristics of a given project. For example, a Standard Make C Project has a C nature, whereas a QNX C Project has a C nature as well as a QNX C nature, and so on.


QNX C or C++ projects use the QNX recursive Makefile hierarchy to support multiple target architectures; Standard Make C/C++ projects don't.

For more information about the QNX recursive Makefile hierarchy, see the Conventions for Recursive Makefiles and Directories chapter in the Neutrino Programmer's Guide.

The natures inform the IDE what can and can't be done with each project. The IDE also uses the natures to filter out projects that would be irrelevant in certain contexts (for example, a list of QNX System Builder projects won't contain any C++ library projects).

The following table contains the most common projects and their associated natures:

Project Associated natures
Simple Project None
C Project C
C++ Project C, C++
QNX C Project C, QNX C
QNX C Library Project C, QNX C
QNX C++ Project C, C++, QNX C
QNX C++ Library Project C, C++, QNX C
QNX System Builder Project QNX System Builder

The IDE saves these natures and other information in the files called .project and .cproject in each project. To ensure that these natures persist in your source control system, such as CVS or SVN, include these files when you commit the project.

Note: The IDE doesn't directly support nested projects; each project must be organized as a discrete entity. However, the IDE does support project dependencies by allowing a project to reference other projects that reside in your workspace. Container projects also let you logically nest projects by collecting several projects together.
Related concepts
Considerations for project development