【发布时间】:2010-09-11 14:59:05
【问题描述】:
我有一个依赖于一些第三方库的框架(在 C++ 中)。我在编译library框架的静态版本时,不需要额外的依赖,即不需要第三方库的lib文件。当我编译与DLL 相同的框架时,现在需要额外的依赖项,否则会出现链接错误。我可以猜到为什么会发生这种情况,但想要一个具体的答案/解释来了解正在发生的事情。
编辑: 澄清一下,我正在开发一个框架,它可以编译为 lib 和 dll 和 then 在 a(n )(可执行)项目。将框架编译为lib 并使用第三方库中的函数时,我不需要额外的依赖项。但是,现在使用 lib 文件(即框架)的项目必须包含第 3 方 lib 文件。当我将框架编译为dll 时,它会给我链接错误,除非我指定框架在技术上依赖的第三部分库。例如:我有一些从 Ogre3D 中调用功能的类。这些类被编译为lib 文件。在编译类的lib 时,我不需要链接OgreMain.lib。另一方面,当我编译相同类的dll 版本时,我现在需要链接到OgreMain.lib
【问题讨论】:
-
附加依赖是什么意思?
-
也许我误读了一些东西,但我认为 Samaursa 是专门针对他正在编译的情况提出的,而不是询问确定运行时依赖关系。听起来他的项目有两种配置,“build as DLL”和“build as static DLL”。
标签: c++ dll static-libraries