这些文件包含了从源代码编译而成的机器代码,但是里面涉及到的内存地址大多是未定的。
所以需要一个链接(link)过程,将单个源文件编译成的obj装配成可执行文件。其主要作用就是处理各个obj之间的交叉调用(比如说,a.cpp中调用了b.cpp中实现的某个函数)和变量地址之类的。
C++编译器编译出的obj虽然包含了机器代码,但是他们并不是可执行文件。在各种 *** 作系统的可执行格式中,通常都包含了与执行过程相关的一些数据,或者说参数等。要使obj中的代码可以执行,还需要链接器加上这样的数据。
总得来说,过程大概是这样孙扒的:
>编译每个源文件,分别得到obj文件
>链接各个obj文件
>链接各种支持库(比如标准库李戚、 *** 作系统平哪凯陵台运行支持库等)
>加上可执行文件头,资源(windows下的话)等
>生成exe(windows)
封装的概念来自对面向对山嫌象的编程模式 比如说一个方法,你把他放到一个类里面, 下次如果别的地方码唯虚要用到的话,直接调用这个方法就行了,不用再重新编迟燃写。这样能明白么?
如果没有面向对象的基础,可以去了解一下
解决方法:(1)在cadence里选中左边的项李歼渣目里的.obj文件,右击->Edit Object Properties,查看是否所有的元件都添加改和了正确的封装信息,.psm文件是必需的;并查看电气连接是否正确(2)在allegro里查看是不是所有元件都建立了正确的封装;
(3)重新设置padpath和哪悄psmpath的路径。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)