用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定律