The General options category lets you specify various options for the linker.
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 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.
The so version comes from the linker option. For example, if you're using a QNX project for the library project, right-click and select , and then select General options for the Category type. You can see that the Default for the Library version on the Linker tab is 1".
If you specify No, then the SONAME isn't hard coded in the library.
When it is so.1,the loader requires the library to be called exactly like this because all dependent projects refer to is as so.1 (in the NEEDED section of executable).
If you use the IDE to upload libraries to the target during a launch, it silently renames it to the proper version, and makes a copy in the host directory so that the host tools (i.e., debugger) can find it as well.
If you manually upload a library to a target, you have to manually rename it because it isn't necessary if you don't need to keep the library versioning (it is better not to use it at all).
When a shared library is created, it's name is documented in a special dynamic section, and when you link against this library, your application will look for that name.
When you perform a make install, the .so is copied to .so.1, and a .so symbolic link is created to point to it. You'll also 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.