VC lib 库 管理

VC2005默认“库文件lib”包含路径:工具>选项>项目和解决方案>VC++目录>库文件;

 

对于特定项目的“库文件lib”包含,可以通过以下两种方式添加附加库目录:

        (1)在“项目属性>配置属性>链接器>常规>附加库目录”处输入附加库目录路径,相对目录参考*.vcproj文件。

目录路径不需添加双引号,路径分隔符为’/’或’\’,不必考虑反斜杠’\’的转义。多个路径之间以分号分隔

相应的将会在“项目属性>配置属性>链接器>命令行”处同步“/LIBPATH”库包含命令。

        (2)在“项目属性>配置属性>链接器>输入>附加依赖项” 处添加库文件名YourLib.lib(也可在文件中使用#pragma comment(lib, "YourLib.lib")显式导入所依赖的静态库),多个库之间以空格分隔

         注意:相应的库将会在“项目属性>配置属性>链接器>命令行”处同步包含的库名称。

 

大规模C++开发中,经常需要将一个解决方案(sln)分成若干个项目(vcproj)来做,以实现对解决方案的有效管理:(秒大刀的城堡:http://dearymz.blog.163.com/blog/static/205657420103141385725/

        如果用很多个静态库项目(lib)来支撑一个或几个主项目(exe)时,就会发现“链接器/附加依赖项”的配置会变得非常复杂。 通过“框架和引用”设置可以在很大程度上解决该问题,作者在实际项目中多采用此法,比手工配置“链接器/附加依赖项”、设置项目依赖项、调整项目生成顺序少了很多麻烦。当然此法仅对于有源码并能正常创建项目并假如解决方案的情况比较有效。 那么对于没有源码的项目,有没有方法将若干个静态库lib文件合并成一个?这样链接时的配置就方便很多。VC自带的生成工具里有一个lib.exe的库管理器,可以方便的实现lib文件的合并。指令 lib /out:lib_all.lib lib1.lib lib2.lib 就可以方便的将lib文件合并,具体用法请详细阅读lib的帮助文档。lib.exe可以在控制台手工执行,也可以将其作为项目的命令配入自动执行,写个bat脚本也行。 另外也可以直接在IDE中通过选项配置,直接通过lib完成库合并工作。MSDN中对此的解释比较简略: 在 Visual Studio 开发环境中设置 LIB.EXE 选项 访问项目的属性页对话框。 在静态库项目为活动时,选择“管理员”文件夹。 选择“常规”或“输入/输出”属性页。 根据需要修改属性。 其中第4条一笔带过,有点含糊。实际操作中,可以建立一个将多个lib合并起来的容器性质的项目。在“管理员/常规”选项卡“附加依赖项”中填写要合并的lib库名称,在“附加库目录”中写明库的查找路径,并确保“链接库依赖项”为“是”。这样rebuild该包装项目后,会在输出目录看到合并后的lib。其他exe或者dll只要链接该lib就可以了,不用再去链那一堆堆的小lib,烦人。但最好不要删掉该项目中所有的C++文件(比如默认生成的预编译头之类的),否则会在最终的exe或dll链接时发现有一个稍稍不爽的LNK4099出现。当然同时那些原来lib项目的pdb文件无法被正常链接进来,pdb调试符号表的残缺可能对调试是有负面影响的。

转载于:https://my.oschina.net/USA911/blog/9697

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值