How to solve building errors in XPCOM?
When upgrading Gecko from version 1.8 to version1.9, programmers often meet some building errors, such as “unresolved external symbol "unsigned int __cdecl NS_TableDrivenQI(void *,struct QITableEntry const *,struct nsID const &,void * *)" (?NS_TableDrivenQI@@YAIPAXPBUQITableEntry@@ABUnsID@@PAPAX@Z)” and so on. In fact, it makes me so depressed in a short time. By checking the related header files, I find the root-cause and share the solution for programmers herein.
Please verify the items listed below:
1. Check whether ‘XXX/xulrunner-sdk/sdk/include’ has been included in your ‘Additional Include Directories’.
2. Check whether ‘XXX/xulrunner-sdk/sdk/lib’ has been included in your ‘Additional Library Directories’.
3. Check whether ‘nspr4.lib xpcom.lib xpcomglue_s.lib’ has been added into ‘Additional Dependencies’.
4. Check whether ‘XP_WIN and XP_WIN32’ has been added into ‘Preprocessor Definitions’.
For upgrading Gecko from version 1.8 to version 1.9, the most possible reason is the 4th step where the definitions have been defined.
Moreover, the releases versions from Gecko1.8 to Gecko 1.9 can be found in http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/