在VC++静态LIB中嵌入其他LIB

在VC++中创建静态LIB库工程,其他工程要使用该LIB时只需要H文件和LIB文件,没有DLL。
如果该LIB内部使用了其他LIB文件,则需要将这些LIB文件一同提供给外界使用编译。
有时LIB文件太多,对于其他工程而言,这些LIB文件没有直接使用到,增加了工程配置复杂性。

下面介绍在VC++IDE环境中将内部所需的各个LIB文件集成到一个LIB的方法。

选择“Project | Settings”菜单进入到LIB项目设置界面,切换到“Library”选项卡,
在该页下方的“Project Options”编辑框中,我们可以看到类似如下的文字:
/nologo /out:"..\..\Lib\VC60\Debug\MyLib.lib"
在末尾加上其他LIB文件名即可合并LIB到最终的一个LIB中,在这里是MyLib.lib,
例如“Project Options”设置为:
/nologo zip.lib rar.lib "../Lib/Other.lib" /out:"..\..\Lib\VC60\Debug\MyLib.lib"

另外,操作系统标准的LIB文件最好不要加入,否则会有警告或冲突,例如user32.lib、shlwapi.lib
操作系统标准的LIB文件需要放到最终DLL或EXE中。

另外,这个配置的原理是调用VC IDE 的 lib工具的功能,具体在VC控制台下看Lib程序的命令提示,
还有好多功能,比如从Lib中提取Obj...
相关问题还有Link,比如查看程序实际链接那些lib库(link /verboseb  命令),
这对引用很多Lib引起的链接错误很有帮助。
lib, link 的相关参数还有很多,可能会用在一些生僻的地方。

原文地址:https://www.cnblogs.com/rhcad/p/1605113.html