黑马程序员技术交流社区
标题:
OC中的编译和链接弄的晕头转向了
[打印本页]
作者:
himym2005
时间:
2014-8-31 16:07
标题:
OC中的编译和链接弄的晕头转向了
编译整个工程是不是将每个.m和.h合成一个.o文件,然后链接的时候将这些.o文件合并在一起,缺一不可,不知道我的理解对不对??
作者:
SailY
时间:
2014-8-31 17:29
编译:.m文件生成.o文件,此过程可以理解为将高级语言翻译为计算机可以理解的二进制代码,就是0跟1。这个过程只要所有的语法正确,编译器就可以编译出中间目标文件,如果函数与变量的声明的不正确,会由警告,但还是会生成.o文件。
链接:.o文件生成.out 文件,大量的Object File合成执行文件,这个动作叫作链接,也就是把多个.o 文件合成.out执行文件。如果函数未被声明,编译器会给出一个警告,但可以生成Object File。而在链接程序时,链接器会在所有的.o中找寻函数的实现,如果找不到,那到就会报链接错误。
所以对的把,个人理解。
作者:
泠风小和
时间:
2014-8-31 18:17
本帖最后由 泠风小和 于 2014-8-31 18:18 编辑
编译只是会编译.m文件,.h文件只是用来保存一些代码(如类的声明等)。在.m文件中#import ".h"文件,就会把.h文件中的代码复制到 #import ".h" 这行代码所在的地方。
作者:
﹉随♥游✈者
时间:
2014-8-31 21:26
我也是呀,,,,,,,,,晕晕的
作者:
王绍明
时间:
2014-8-31 22:49
直接一起编译目标文件.o
作者:
❤如止水之絕境
时间:
2014-8-31 22:56
呃。。。。。。
作者:
冯大卫
时间:
2014-8-31 23:09
觉得语法好诡异
作者:
himym2005
时间:
2014-9-1 20:11
SailY 发表于 2014-8-31 17:29
编译:.m文件生成.o文件,此过程可以理解为将高级语言翻译为计算机可以理解的二进制代码,就是0跟1。这个过 ...
谢谢~~~明白了好多
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2