今天在查看Visual Studio中A工程的时候,发现在VS链接页面的Command链接了B.lib静态库,可是我找遍了配置选项,也没找到配置的地方啊!!!经过探索发现,原来是工程依赖隐含了这个条件。 也就是说工程依赖至少实现了一下两个功能:
(1) 定义了工程编译的顺序,比如A工程依赖B工程,则编译A工程的时候回去先编译B工程
(2) 隐含了静态链接Lib文件,比如A工程依赖B工程,B工程的编译结果是静态库或者dll+lib(动态链接库+动态链接库的Lib文件),那么则A工程链接的时候隐含了链接B工程产生的Lib文件。
这里补充下,在Windows下Lib文件有两种形式,一种是包含了符号表和二进制的执行代码;另一种是只有动态库(DLL)的符号导出信息,这些信息在程序运行的时候可以找到动态库中的函数具体位置。