2

我想知道,当我在 Objective-C 中构建项目时编译了哪些代码 - 我的项目中的每一行代码,或者只有那些从 main.c 调用的代码,然后从那些被调用的代码他们?

我的意思是,编译器是否将项目与简单连接的域分开并编译链接到主域的域,还是只编译所有域?

谢谢你们!

4

3 回答 3

4

编译器不对您的代码执行语义分析。它完全按照您告诉它编译的内容进行编译——Xcode 通常以将每个文件编译到您的应用程序中的方式调用编译器。但是,没有必要编译/链接不使用类/函数的文件;尽管不编译使用类/函数的文件会导致链接错误(也就是说,编译器在将最终可执行文件的目标代码放在一起时将无法在二进制文件中找到某些符号)。

于 2012-07-05T18:25:51.150 回答
3

项目中的所有文件都将被编译,除了不包含在任何 .m 文件中的头文件,或者有条件地禁止包含的头文件。

于 2012-07-05T18:26:45.370 回答
2

一个 Xcode 项目由一个或多个目标组成。

对于您可以定义的每个目标,编译了哪些 *.m 文件

编译目标

如果您将新文件添加到项目中,您可以指定将添加到哪个目标。(其实这是我经常看到的一个地方,主要目标没有被选中——小心)

在此处输入图像描述

于 2012-07-05T18:43:18.563 回答