我想知道,当我在Objective-C中构建项目时编译了哪些代码 - 我的项目中的每一行代码,或者只有那些从main.c调用然后从那些调用的代码。是从他们那里打来的?
我的意思是,编译器是否将项目与简单连接的域分开并编译链接到main的域,或者只编译它?
谢谢你们,伙计们!
答案 0 :(得分:4)
编译器不对您的代码执行语义分析。它完全编译你告诉它编译的内容--Xcode通常以一种方式调用编译器,它将每个文件编译到你的应用程序中。但是,没有必要编译/链接没有使用类/函数的文件;虽然没有编译使用类/函数的文件会导致链接错误(也就是说,编译器在将最终可执行文件的目标代码放在一起时将无法在二进制文件中找到某些符号)。
答案 1 :(得分:3)
项目中的所有文件都会被编译,除了任何.m文件中未包含的头文件,或者包含有条件抑制的头文件。
答案 2 :(得分:2)