I am building an application as a library, but to make sure I can get the output that I’d like, I switched it over to produce an exe. As soon as I did, I got several errors about unresolved external symbols.
At first I thought that I didn’t have a path set to the 3rd party library that I was referencing, so I added the folder to my path variable and even added it to my include, references, and source files, just to make sure I had all the paths.
I still get the error:
error LNK2019: unresolved external symbol ‘__declspec(dllimport) public: static void __cdecl xercesc_2_8::XMLPlatformUtils::Initialize(char const * const,char const * const,class xercesc_2_8::PanicHandler * const,class xercesc_2_8::MemoryManager * const,bool)’ (__imp_?Initialize@XMLPlatformUtils@xercesc_2_8@@SAXQBD0QAVPanicHandler@2@QAVMemoryManager@2@_N@Z) referenced in function ‘void __cdecl xsd::cxx::xml::initialize(void)’ (?initialize@xml@cxx@xsd@@YAXXZ)
The reason that I’m asking it here is because in Visual Studio, when I built it as a library, I didn’t get these errors, but as a dll and exe, I do.
Anybody have any thoughts?
Building a library, the linker doesn’t need to resolve imported symbols. That happens only when it starts linking object files and libraries together.
That’s why you only started seeing the error when building an executable.
Indeed, in VC2008 (and 2005, if I remember well), use the project properties -> Linker -> Input -> Additional dependencies. The libraries you need are to be separated by spaces (odd, hey?)
Good Luck!