我想将许多Win32 C-Projects结合到一个.lib文件中。
操作系统:Windows XP Sp3 IDE / Comipler:Visual Studio 2010
现在我有一个引用所有其他项目的父项目。 但是引用的项目中的所有函数和全局variables都不包含或不公开,所以在使用这个库的时候我会得到一个“无法parsing的外部”的错误。 父项目中的function正常工作。
我能做什么?
有一些参考项目的选项,但没有一个似乎解决了我的问题
甚至link.exe中的/ INCLUDE选项不会影响任何内容…
最后,我通过将lib命令定义为make事件(Post-Build Event)来做到这一点。 lib /out:out.lib in1.lib lin2.lib …
这是可移植性差,但符合我的要求谢谢@斯坦
从另一个项目引用一个项目只是强制一个项目作为另一个项目的依赖项目,它并不明确地链接一个项目的输出。
您应该配置项目依赖性,以便首先编译这些库,然后您必须将这些项目的输出(静态库或导出库,如果是DLL项目)显式添加到链接器“其他库”列表。
您可以按照您的建议,使用Microsoft库管理器将多个库合并成一个库 ,但这本身并不是解决您的问题的方法; 你仍然需要像上面那样明确地链接库来创建一个可执行文件 – 只会有一个而不是几个 – 我真的不能看到有太多的意义,除非功能密切相关,如果是这样的话为什么他们不是一个项目呢?
如果您使用的是命令行工具,那么/ INCLUDE链接器选项将无济于事,只会强制以其他方式将未引用的对象代码包含在链接中。