Xcode新手:不理解编译器错误信息

3

我对Xcode还比较陌生,最近收到了一条错误消息,对于那些知道如何处理这个问题的人来说,这可能很清楚,但是我不确定该如何应对。

我的项目主要是C++,只有几个C文件。一切都很顺利,直到我尝试添加一些代码来查找计算机的MAC地址。Apple提供了一个项目示例(GetPrimaryMACAddress),我下载、构建和测试了它。它运行得非常好。

之后,我只需将Apple示例项目中的C源代码复制并包含到我的代码项目中即可。然后我开始收到这个错误消息:enter image description here

我尝试通过链接器显式地包含IOKit框架,但没有帮助。我尝试在Apple示例代码中添加更多的#include语句,但也没有帮助。我想我不理解编译器消息告诉我的关于从模块'Darwin.MacTypes'导入的内容。

点击错误消息将我带到了usr/include/MacTypes.h中的一行:enter image description here

我不太清楚如何Import Darwin.MacTypes。我真的不明白GetMACAddress的源代码为什么能够在一个项目中如此轻松地编译而在另一个项目中却不能。我没有重新排列、添加或删除Apple提供的C文件中的任何#include语句。

我敢打赌,这里肯定有一个简单的答案,只是我没看到。我该如何应对这个错误消息?


在出现此错误时,请在正在构建的 .c 文件顶部显示包含和导入。我怀疑项目之间的区别在于苹果示例在构建设置中设置 CLANG_ENABLE_MODULES,而您的新项目则设置了该选项。您可以尝试将其关闭。 - Ken Thomases
2个回答

2

我曾遇到过与UInt16和UInt32等类型相关的类似问题。我只需使用以下include语句包含MacTypes即可:

#include <MacTypes.h>

这解决了我在示例C文件中的所有类型问题。

-2
让我猜猜,当你想编译 C++ 源代码时,你应该创建一个C++源文件

(在工具栏上:文件 > 新建 > 文件.. > 源文件 > C++文件)


那个回答与我的问题完全无关。正如我已经指出的,我的大部分C++项目中已经有了一些C文件;直到我添加了由苹果提供的源代码之后才出现了问题。 - Logicrat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接