Use this tab to specify the kind of libraries that this project will generate.
Library tab for the C/C++ New Project Wizard
Note: Not all QNX projects have a Library tab; executables (applications) don't. This means that IDE won't display this tab for
projects that don't build a library; it's only displayed for QNX projects that build libraries.
The build target types for libraries are:
-
Static library (libxx.a)
- Combine binary object files (i.e. *.o) into an archive that will later be directly linked into an executable. A static library is a collection of object files
that you can link into another application (libxx.a). The IDE combines object files (i.e. *.o) into an archive (*.a) that's directly linked into an executable. The makefile for this project type is automatically created by the IDE.
-
Shared library (libxx.so, libxxS.a)
- An executable module compiled and linked separately; it combines binary objects together and joins them so they're relocatable
and can be shared by many processes. Select this option if you want to statically link .so code into an object, if you have code to reuse, and if you're interested in a relocatable library. 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. Shared libraries are named using
the format libxx.so. and libxxS.a version, where version is a number with a default of 1. The libxx.so file will be a symbolic link to the latest version.
-
Shared+Static library (libxx.so, libxx.a, libxxS.a)
- The same as selecting the Shared+Static shared library (libxx.a, libxxS.a) option; however, it also builds a shared object. Selecting this option creates every kind of library that exports its symbols.
-
Shared+Static shared library (libxx.a, libxxS.a)
- Generate two types of static libraries: one with position independent code (PIC - for linking into shared objects - .so), and one without (generally linked into executable programs).
-
Shared library without export (xx.dll)
- A shared library without versioning. It's used to discover extensions found during runtime (i.e. driver modules that plug
into hardware). Generally, you write code to open the library with the
dlopen() function and look up specific functions with the
dlsym() function.