阅读:3513回复:2
探讨TARGETLIBS 和 SOURCELIBS 的区别
个人认为在Source文件中,
TARGETLIBS 是一种动态链接,需要什么则链接什么; SOURCELIBS 则是一种静态链接,编译到目标DLL或LIB中。 一般设定情况是: TARGETLIBS=$(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\coredll.lib \ $(_SYSGENOAKROOT)\lib\$(_CPUINDPATH)\ceddk.lib \ TARGETLIBS链接的是一些公共的库。 SOURCELIBS= \ $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\wavemdd.lib SOURCELIBS链接的是与平台相关或本驱动相关的库。 不知道,大伙对TARGETLIBS 和 SOURCELIBS 的区别有什么不同的意见或更深层次的见解,欢迎交流! |
|
|
沙发#
发布于:2008-01-25 22:12
我的理解也是hunbalo所说。
TARGETLIBS,如果一个库以DLL的形式提供给调用者,就需要用TARGETLIBS,它只链接一个函数地址,系统执行时会将被链接的库加载。比如coredll.lib , CEDDK.lib就是这样的库文件。即动态链接。 SOURCELIBS,将库中的函数实体链接进来。即静态链接,用到的函数会在我们的文件中形成一份拷贝。 |
|
|
板凳#
发布于:2008-01-25 16:59
楼上正解, targetlib 引用的是在运行时其他dll导出的.
sourcelib中引用的二进制代码直接拷贝连接到目标文件中. |
|