I have a framework (in C++) which is dependent on a few third party libraries. When I compile a static version of the library framework, no additional dependencies are needed, that is, the lib
files of the third part libraries are not needed. When I compile the same framework as a DLL
, additional dependencies are now needed otherwise I get linking errors. I can guess as to why this is happening but would like a concrete answer/explanation to understand what is happening.
EDIT: Just to clarify, I am developing a framework which can be compiled as a lib
and as a dll
and then used in a(n) (executable) project. When compiling the framework as a lib
and using functions from a third party library, I don't need additional dependencies. However, a project that now uses the lib
file (which is the framework) must include the 3rd party lib
files. When I compile the framework as a dll
it gives me linking errors unless I specify the 3rd part libraries the framework is technically dependent on. For example: I have a few classes that call functionality from within Ogre3D. These classes are compiled as a lib
file. I don't need to link against OgreMain.lib
when compiling a lib
of the classes. On the other hand, when I am compiling a dll
version of the same classes, I now need to link against OgreMain.lib