SOURCELIBS和TARGERLIBS的区别

原创 2007年10月10日 12:48:00
 
本文主要描述了SOURCELIBS和TARGERLIBS这两个宏的区别,它们被广泛应用在使用PB来编译Wince/Windows mobile的source文件中出现,本文参考了网上的一些资料,并结合自己的理解,其中的说明有错误的地方,请不吝指正。
根据Crossbow的文档,SOURCELIBS主要用于创建一个新的静态库(LIBs),并且生成的库中使用了其他的静态库,它的作用是指定了哪些静态库(lib)将被链接到目标库中,例如:
SOURCELIBS =/
        $(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/ddk_io.lib/
        $(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/fulllibc.lib
表示生成的目标库中使用了ddk_io.lib和fulllibc.lib,但这并不是必须的,因为静态库中的接口可以没有其实现,可以在使用它的DLLs或者EXEs通过TARGERLIBS去指定需要链接的静态库。
TARGERLIBS用于链接目标可执行文件(EXEs或DLLs)所需要的一些静态库,EXEs或DLLs必须包含每一个函数接口的实现。
SOURCELIBS和TARGERLIBS的存在是Wince模块化特征,链接的过程分为两步:第一步,合并SOURCELIBS指定的静态库,生成单个目标静态库;第二步,链接目标静态库、TARGERLIBS指定的静态库,生成目标可执行文件。如果你已经在SOURCELIBS所指定的静态库test1.lib中定义了一个函数Function1,并且Function1在TARGERLIBS中的某个库中test2.lib也已经有其实现,这时会排除test2.lib中的Function1而使用test1.lib中的Function1,这样就实现了所谓的“条件链接”。但是如果source文件仅包含TARGERLIBS不包含SOURCELIBS,这时将无法确定包含哪个版本的Function1,如上面所说的,实现的函数(源文件中的Function1)具有一个高的优先权进行链接。
下面表示库在上面情况下被链接以及链接的次序(可能会随PB版本的不同而发生变化):
EXEs
仅仅TARGERLIBS指定的库被链接,SOURCELIBS中的任何库都会被忽略。
DLLs
       SOURCELIBSTARGERLIBS指定的库都会被按顺序链接。
LIBs
SOURCELIBS仅仅指定的库被链接,TARGERLIBS中的任何库都会被忽略。
 

【UI】第二周 AI软件基础与字体设计

-
  • 1970年01月01日 08:00

关于source中的TARGETLIBS和SOURCELIBS的区别

摘自:http://topic.csdn.net/u/20090403/11/897684cc-3eca-40f4-90d7-88e501669efe.html   转自微软MVP作者:ARM—W...
  • yishow
  • yishow
  • 2011-06-02 11:09:00
  • 636

the difference between the SOURCELIBS and TARGETLIBS

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

WinCE中sources文件中targetlibs与sourcelibs区别

在WinCE里面,编译和链接的必备文件sources,做过WinCE BSP开发的一定都很熟悉,其中有2个关键字,targetlibs和sourcelibs,一直让我对其中的区别很感兴趣,故查阅了一些...
  • zzc89522
  • zzc89522
  • 2012-11-18 16:03:35
  • 744

WinCE5 sources文件中TARGETLIBS与SOURCELIBS字段的作用与区别

在WinCE里面,编译和链接的必备文件sources,做过WinCE BSP开发的一定都很熟悉,其中有2个关键字,targetlibs和sourcelibs,一直让我对其中的区别很感兴趣,故查阅了一些...
  • luixing67
  • luixing67
  • 2010-02-11 12:17:00
  • 743

WinCE中sources文件中targetlibs与sourcelibs的作用与区别

在WinCE里面,编译和链接的必备文件sources,做过WinCE BSP开发的一定都很熟悉,其中有2个关键字,targetlibs和sourcelibs,一直让我对其中的区别很感兴趣,故查阅了一些...
  • congyue123
  • congyue123
  • 2010-03-18 14:05:00
  • 1088

内网与外网的区别 内网与外网的区别

  • 2010年08月12日 17:32
  • 7.57MB
  • 下载

与==的区别.docxequal与==的区别.docx

  • 2011年06月04日 20:40
  • 15KB
  • 下载

jdbc和hibernate的区别

  • 2011年09月05日 22:54
  • 29KB
  • 下载

throws与throw区别

  • 2010年09月08日 13:37
  • 2KB
  • 下载
收藏助手
不良信息举报
您举报文章:SOURCELIBS和TARGERLIBS的区别
举报原因:
原因补充:

(最多只允许输入30个字)