A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© himym2005 中级黑马   /  2014-8-31 16:07  /  1392 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

编译整个工程是不是将每个.m和.h合成一个.o文件,然后链接的时候将这些.o文件合并在一起,缺一不可,不知道我的理解对不对??

7 个回复

倒序浏览
编译:.m文件生成.o文件,此过程可以理解为将高级语言翻译为计算机可以理解的二进制代码,就是0跟1。这个过程只要所有的语法正确,编译器就可以编译出中间目标文件,如果函数与变量的声明的不正确,会由警告,但还是会生成.o文件。

链接:.o文件生成.out 文件,大量的Object File合成执行文件,这个动作叫作链接,也就是把多个.o 文件合成.out执行文件。如果函数未被声明,编译器会给出一个警告,但可以生成Object File。而在链接程序时,链接器会在所有的.o中找寻函数的实现,如果找不到,那到就会报链接错误。

所以对的把,个人理解。
回复 使用道具 举报
本帖最后由 泠风小和 于 2014-8-31 18:18 编辑

编译只是会编译.m文件,.h文件只是用来保存一些代码(如类的声明等)。在.m文件中#import ".h"文件,就会把.h文件中的代码复制到 #import ".h" 这行代码所在的地方。
回复 使用道具 举报
我也是呀,,,,,,,,,晕晕的
回复 使用道具 举报
直接一起编译目标文件.o
回复 使用道具 举报
呃。。。。。。
回复 使用道具 举报
觉得语法好诡异
回复 使用道具 举报
SailY 发表于 2014-8-31 17:29
编译:.m文件生成.o文件,此过程可以理解为将高级语言翻译为计算机可以理解的二进制代码,就是0跟1。这个过 ...

谢谢~~~明白了好多
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马