#include <checkheaderlibdesync.h>
This class helps to finding errors in the use of header files and libraries.
Static Public Member Functions | |
static void | Check () |
Static Private Member Functions | |
static void | Check_DEBUG () |
static void | Check_RELEASE () |
static void | Check_SHIPPING () |
|
inlinestatic |
This is called in user code thanks to BaseSystem::Init.
Thus, macros processed here have the values of the user project, and they'll be checked against the ones used when the libraries were built.
Note that only the library/executable making the call to BaseSystem::Init will be checked automatically.
Explicit calls to CheckHeaderLibDesync::Check() can be added into .cpp files of libraries not calling BaseSystem::Init but that are dependent upon gwnavruntime header files, so such libraries will be checked as well.
So, this function helps to prevent the user project is wrongly setup, for instance, if debug libraries are used with no debug preprocessor symbol defined, an 'unresolved external symbol' link error will be raised since Check_RELEASE or Check_SHIPPING will be called but only Check_DEBUG will be in the used library.
To solve this error, please add to the preprocessor definitions of your project, either KY_BUILD_DEBUG, KY_BUILD_RELEASE or KY_BUILD_SHIPPING, accordingly to Navigation libraries you are linking against (debug, release or shipping respectively)
This function also ensures there's no mismatch between header files and libraries, e.g. different versions were mixed up when installing the SDK an 'unresolved external symbol' link error will be raised regarding a function named CheckVersion_major_minor_patch where major, minor and patch are the version numbers
|
staticprivate |
cf. CheckHeaderLibDesync::Check for more information
|
staticprivate |
cf. CheckHeaderLibDesync::Check for more information
|
staticprivate |
cf. CheckHeaderLibDesync::Check for more information