【发布时间】:2010-05-17 12:16:59
【问题描述】:
我们最近从 2005 年升级到 Visual Studio 2008,我认为这些错误是在那之后开始的。
在我们的解决方案中,我们有许多项目。其中许多是实用项目,或包含其他项目使用的核心功能的项目。这些的输出是在构建项目时链接到的 lib 文件,这些项目使用“项目依赖项...”选项生成最终的二进制文件。
其他项目之一---让我们称之为ResultLib---生成一个DLL,它需要核心项目中的一个函数。这个函数只使用了自己源文件中的静态函数,但是整个项目使用了很多低级的Windows函数,还导入了一个DLL---我们称之为Driver.dll。
我们的问题是,在构建 ExtLib 时,链接器会抱怨大量未解析的外部对象,例如从 Driver.dll 导出的所有函数,因为在链接时未指定其 lib 文件。如果我们尝试通过添加使用所有核心项目的其他项目使用的所有 lib 文件来解决此问题,我们生成的 ResultLib DLL 最终会导入 Driver.dll 并导出其中定义的所有函数。
我们如何告诉 Visual Studio 只尝试解析实际使用的符号?
【问题讨论】:
标签: c visual-studio-2008 linker