战魂小筑

讨论群:309800774 知乎关注:http://zhihu.com/people/sunicdavy 开源项目:https://github.com/davyxu

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  257 随笔 :: 0 文章 :: 506 评论 :: 0 Trackbacks

用VC2005/2008编译代码时,经常要链接其他lib,最传统的方法就是在Linker->Input->Additional Dependencies中添加对应的lib。

另外一个功能是project中的Project Dependencies,在Depends on里可以选择工程依赖的项目

 

一直以来,我一直认为Project Dependencies只是来决定编译顺序的,在项目很多,而且又需要经常编译时,一般就会调节下这个里面的依赖,让工程编译顺序可以正确。但一般情况下这个功能在我的机器上是睡觉的

 

后来,突然发现,Project Dependencies是可以帮助项目链接lib的,也就是说,对于在同一个Solution的项目的lib依赖,可以不进入->Input->Additional Dependencies中进行添加。

这个功能是保存在Solution内的,因此可以被源代码管理软件给别人共享

 

功能对比:

传统手动添加lib

优点:

   适合大部分的编译器,可以深刻理解linker的流程,项目被移出Solution后也不用重新设置其他关联项目,传统而有效

缺点:

   设置比较麻烦

 

项目依赖添加lib

优点:

    既解决了lib引用,也决定了编译顺序

缺点:

    如果即使用传统方法,又使用项目依赖,可能会造成不预定的多次编译

    离开VC后,很难适应其他IDE或者编译器

    其他项目依赖的基础库被移出Solution后再倒回来后,需要重新设置依赖

    Solution丢失,关联也就丢失,单独编译某个项目,需要重新设置依赖

 

总结

既然用MS的东西,就选择MS的优化功能,这是MSDN推荐功能。

如果既要保持跨平台的习惯,可以继续使用传统方法,因人而异

 

MS的东西让电脑和编程都变的简单,但并不一定是最强大的,这就是2|8定律

posted on 2009-07-31 15:47 战魂小筑 阅读(349) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理