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中的任何库都会被忽略。
 

==和===有什么区别

”==”与”===”是不同的,一个是判断值是否相等,一个是判断值及类型是否完全相等。 下面的规则用于判定===运算符比较的两个值是否相等的判断条件 •如果两个值的类型不同,它们就不相同。 •如果...
  • lmwyc123
  • lmwyc123
  • 2015年07月16日 22:55
  • 1548

js ==与===区别

1、对于string,number等基础类型,==和===是有区别的 1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等 2)同类型比较,直...
  • WXDZXL
  • WXDZXL
  • 2013年01月14日 18:35
  • 11968

Java 中 Equals和==的区别

在谈论equals和==的区别前,我们先简单介绍一下JVM中内存分配的问题。 在JVM中 内存分为栈内存和堆内存。二者有什么区别呢? 当我们创建一个对象(new Object)时,就会调用它的构造函数...
  • tcytcy123
  • tcytcy123
  • 2016年03月09日 16:19
  • 15839

MyBatis 中#与$的区别

今天在工作中有个点击排序的功能调试了许久,终寻因,总结之。   需求是这样的,页面有个table,有一列的上下箭头可点击并排序。对于这种需求,我的mybatis.xml的sql配置写成了如下:  ...
  • u011519624
  • u011519624
  • 2017年01月22日 23:42
  • 4091

lua中.和:区别

本文是面向对象预热篇,讲解函数两种调用方式的区别,初学者比较容易被坑。 1.初学者最易混乱Top1——调用函数时用点号还是用冒号? 我们来看看下面的两句代码: 复制代码代码如下: mSpr...
  • themagickeyjianan
  • themagickeyjianan
  • 2016年06月22日 17:05
  • 313

初识JavaScript,Ajax,jQuery,并比较三者关系

一、基本认识   1、JavaScript   定义:           javaScript的简写形式就是JS,是由Netscape公司开发的一种脚本语言,一种广泛用于客户端Web开发的脚本语言...
  • caozhangyingfei0109
  • caozhangyingfei0109
  • 2013年08月26日 08:12
  • 32946

title与h1的区别、b与strong的区别、i与em

一直以来都以为b和strong以及i和em是相同的效果。但是还是有区别的 它们的区别就再于一个是物理元素,一个是逻辑元素。 什么是物理元素?什么是逻辑元素? 物理元素所强...
  • qq_33769914
  • qq_33769914
  • 2017年07月31日 14:34
  • 341

Mybatis中#和$的区别

Mybatis中$和#的区别
  • u013399093
  • u013399093
  • 2017年01月05日 17:06
  • 2167

PHP、JavaScript、HTML三者的比较

一、PHP: 1、概念:         PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Per...
  • S___Lei
  • S___Lei
  • 2016年05月03日 21:25
  • 11053

监察、稽查、稽核与审计的关系

引文地址:http://blog.sina.com.cn/s/blog_571b25070100gund.html   最近在研究一些业务,发现稽查、稽核、审计等词用的比较频繁,在网上找到了一篇文...
  • starshine
  • starshine
  • 2015年05月25日 09:20
  • 2261
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SOURCELIBS和TARGERLIBS的区别
举报原因:
原因补充:

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