我想将一些Win32 C-Projects合并到一个.lib文件中。
操作系统:Windows XP Sp3 IDE / Comipler:Visual Studio 2010
现在我有一个引用所有其他项目的父项目。但是引用项目中的所有函数和全局变量都不包含或不公开,因此在使用库时出现“未解析的外部”错误。 父项目中的函数正常运行。
我该怎么办?
有一些引用项目的选项,但它们似乎都没有解决我的问题
即使link.exe中的/ INCLUDE选项也不会影响任何内容......
答案 0 :(得分:3)
最后,我通过将lib命令定义为make事件(Post-Build Event)来实现。 lib /out:out.lib in1.lib lin2.lib ...
便携性差,但符合我的要求 谢谢@Stan
答案 1 :(得分:0)
从另一个项目引用一个项目只会强制将一个项目构建为另一个项目的依赖项,它不会明确地将一个项目的输出与另一个项目的输出相关联。
您应该配置项目依赖项以便首先编译库,然后必须将这些项目的输出(静态库或导出库,如果是DLL项目)显式添加到链接器“其他库”列表中
您可以建议使用Microsoft Library Manager将多个库合并为一个,但这本身并不能解决您的问题;你仍然需要如上所述显式链接库来创建一个可执行文件 - 只有其中一个而不是几个 - 我真的看不出有什么意义,除非功能密切相关,如果是这样的话为什么他们不是第一个项目?
如果您使用命令行工具,那么/INCLUDE链接器选项将无济于事,这只会强制其他未引用的目标代码包含在链接中。