Considerations for project development

What is the difference between the project types?
The IDE has these project types:
  • Makefile project — a project that can run the command line make. Developers manage all of the build features in Makefiles, except for those commands used to run make itself from IDE.
  • Managed project — a CDT project that is entirely managed from the IDE.
    Note: In IDE 4.0.1 this type of project couldn't be built from the command line; however, in IDE 4.5 and later, the Makefile can be generated from this type of project in order to build it from the command line.
  • QNX Managed project — a project based on the QNX recursive Makefiles. It is managed from either the IDE or from Makefiles; however, Makefiles require minimal maintenance because most settings for this type of project are automatic. You can build this project from the command line.
How portable are the project types?
The metadata files that should be stored with the project in source control are:
  • .project
  • .cproject
  • .cdtproject (for older projects only)
Note: Metadata (workspace/.metadata) should never be stored in source control.
Are projects portable between different versions of the IDE? Projects are portable between different versions of the IDE; however, see the Release Notes for any known issues regarding the import process.
For an existing project without metadata, what's the best method to import it into the IDE? To import an existing project into the IDE, use the Import wizard (File > Import…). Alternately, you can create a linked folder; however, the IDE won't copy any of its source code.
How should complex development scenarios be organized? Typically, you should organize your projects such that there is one binary/shared library per project (including all multiplatform and debug variants).
How can I add dependencies between projects? You can add multiple projects to a QNX C/C++ container project and set the order in which those projects build. You can also reference other projects or files. Typically, you should add an explicit dependency on particular types, such as shared libraries.
Can more than one executable be created in the same project? If you use a Makefile project, you can create more than one executable for the same project.