The General options category lets you set basic properties of the application executable or library, such as the stack size and whether to export symbols, as well as name and version options for the generated file.
The default dialog for the General options category.
Field descriptions for the General options category
By default, a generated application has the same name as the project it's built from. A library has a prefix of lib and a suffix of .a or .so after the project name. In addition, debug variants of applications and libraries have a suffix of _g.
Override the shared-object name used in C/C++ library projects. This setting doesn't affect the actual filename.
Select a version number for both the library's shared-object name and filename.
If the library doesn't have a version number (e.g., its filename is to be libxx.so with no numeric suffix), select No. This way, the shared-object name isn't hard-coded in the library.
To use versioning, you can leave the field setting as Default, in which case the IDE uses 1 as the version number, or select an exact version number within the available range. The filename is then libxx.so.n, where n is a number based on this setting. In this case, the shared-object name ends with so.n. The loader requires the library filename to be exactly like this because all dependent projects will refer to the library as so.n (in the NEEDED section of the executable).
If you use the IDE to upload libraries to the target when launching an application, the IDE silently renames each library file to the proper version, and makes a copy in the host directory so that the host tools (e.g., the debugger) can find it as well.
When a shared library is created, its name is documented in a special dynamic section, and when you link against this library, your application looks for that name.
When you run make install, the .so file is copied to .so.1, and a .so symbolic link is created to point to it. You'll notice that .so will get the right version. If you install a .so.2 (where the .so points to it), your old version 1 clients can still run.