the difference between the SOURCELIBS and TARGETLIBS

 

 

1   TARGETLIBS,如果一个库以DLL的形式提供给调用者,就需要用TARGETLIBS,它只链接一个函数地址系统执行时会将被链接的库加载。比如coredll.lib就是这样的库文件。即动态链接。


2 SOURCELIBS,将库中的函数实体链接进来。即静态链接,用到的函数会在我们的文件中形成一份拷贝。

         总的来说就是先编译了你自己在sources里指定的源文件,在链接阶段,先将所有的sourcelibs链接在一起成为一个lib,然后与targetlibs指定的lib一起参与链接。

       当然这里targetlibs指定的可以是dll的lib文件,在CE的帮助文件中,有说明targetlibs可以使用import libraries or static libraries。但是sourcelibs说明中指出一般用在把许多小的lib合并为一个大的lib。

还有关于用法的一些说明:

EXEs
    Only TARGETLIBS get linked, anything in SOURCELIBS is ignored
DLLs
    SOURCELIBS and TARGETLIBS get linked, in that order
LIBs
    Only SOURCELIBS get linked, anything in TARGETLIBS is ignored

出处:http://www.189works.com/article-3527-1.html

 

你可能感兴趣的:(the difference between the SOURCELIBS and TARGETLIBS)