version

version major.minor [explicit]

The version keyword allows a version number to be set for a project. The optional keyword, explicit is used to append the specified version number to the .exe or .dll output file.

EKA1 will only allow one version of an executable to exist in a Symbian platform phone. However, EKA2 supports version numbering. Version numbering associates a version number with each executable enabling new and old versions of the same executable to be on the device simultaneously.

The version keyword takes a major and a minor value separated by a full stop. This value is defined as 32 bit, anything exceeding this will produce a warning. Failing to enter a value will result in a warning and a default value of 10.0 being supplied for binaries built with an EABI compliant compiler. Omitting the version keyword altogether will also result in a default of 10.0 being applied. The version number can be found at Hexadecimal offset 70 within the header of the executable file in ROM.

Usage of the version keyword is optional. One use is to aid eclipsing. In order to eclipse a file on ROM successfully the version of the new file can be set to a higher value than the version of the file to eclipse. This tells the loader that the new file is preferred over the old one.

See the Important Considerations section for more information.

The loader will show preference to versions that have a major number that is equal to the one requested, and of these the minor numbers that are higher are preferred. The loader can assume by the version number that the API is compatible, while also being the most up to date version available.

If the above is not available the loader will look for DLLs with a higher major version number than the one requested. Of these it will select the one with the lowest major number and the highest minor number. If the executable requests exports that no longer exist in this DLL, then the loader cannot use it.