合并lib文件及obj文件的方法

关链接词: Visual C++, 静态链接库
本文针对Visual C++ 2005及以上。
问题来源:
有*.h和*.lib,自己使用这些文件制作一个扩展库my.h和my.lib,为了让用户只使用my.h和my.lib这两个文件即可,因此要将*.lib合并。
解决方案:
可以使用VC带的lib.exe合并即可。
lib /out:my.lib my.lib A1.lib A2.lib ... An.lib
因为lib文件是obj的简单包装,所以也可以直接把obj文件合并到my.lib中。
合并后的文件太小几乎是这些文件的直接相加。
具体的可以查看lib.exe的帮助。
要注意的是,因为只允许使用my.h,所以只能在my.c中include *.h。不需要提供给外部的函数不要在my.h中定义,直接写在my.c中即可。

参考链接:
http://msdn2.microsoft.com/zh-cn/library/7ykb2k5f(VS.80).aspx

未解决的问题:
实际上只用到了*.lib中的很少的功能,而*.lib很大,有没有办法只将使用到的函数的目标代码合并到my.lib中?
这个需要研究link.exe的原理,因为link.exe知道要链接哪些函数。
标签: C语言
评论: 0 | 引用: 0 | 阅读: 578
发表评论
昵 称: (必须)
密 码: (未注册用户可不填)
网 址: 邮 箱:
验证码: 验证码图片 选 项:
头 像:
内 容: