3

我在 xcode 项目中使用 .mm 扩展名上的一些文件来编译这些文件,我们在添加此编译器后在构建设置中添加了 LLVM-GCC 4.2,这显示了错误

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.sdk/usr/include/stdarg.h:4:25: error: stdarg.h: No such file or directory

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.sdk/usr/include/float.h:8:24: error: float.h: No such file or directory

我不知道如何删除此错误对删除此错误有任何帮助。

谢谢

巴拉杰

4

7 回答 7

1

在 Mac OSX 上默认使用的 gcc 4.2 不支持这些标头。

切换到 4.0 版(在此处描述)

于 2009-10-11T10:58:43.723 回答
1

我遇到了同样的问题,在这里无法解决所有其他答案的问题,所以我尝试了:

cd /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.2.sdk/usr/include
sudo mv stdarg.h stdarg.h.original
sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.2.sdk/usr/lib/gcc/arm-apple-darwin9/4.0.1/include/stdarg.h

编译错误消失了!

于 2010-06-29T08:58:54.490 回答
1

我在 GCC 4.0 编译器上已经有了这个 更改为 LLVM 编译器 1.6 对我有用。使用 Mac OS X 10.7.3 Xcode 3.2.5

于 2012-05-07T23:21:44.813 回答
0

我也遇到了这个问题,更改为 GCC 4.0 并没有为我解决这个问题。我还必须将我的活动 SDK(Xcode 编辑器或控制台窗口左上角的下拉菜单)从 10.4(基本 SDK)更改为 10.6(我正在运行 Snow Leopard)。

我不知道这可能会对您的开发产生什么影响,但这对我的问题来说已经足够好了,因为我只是在为简单的事情做一个基本的命令行工具。

于 2010-03-28T20:18:34.177 回答
0

根据我的测试和上面的建议,这个问题与 Base SDK 版本密切相关;也就是说,早期的 SDK 仅适用于 GCC 4.0,而后来的 SDK 则适用于 GCC 4.0 或 4.2(以及较新的 LLVM 选项)。

总结应该有效的选项:

iOS 项目/目标的基本 SDK:
iOS 3.2 及更早版本: GCC 4.0
iOS 4.0 及更高版本: GCC 4.0、GCC 4.2、LLVM GCC 4.2、LLVM Clang

适用于 Mac OS X 项目/目标的基本 SDK:
Mac OS X 10.5 及更早版本: GCC 4.0
Mac OS X 10.6 及更高版本: GCC 4.0、GCC 4.2、LLVM GCC 4.2、LLVM Clang

于 2012-07-30T04:59:52.073 回答
0

在安装 SDL 框架后,我在 xcode 中构建我的 Hello World 应用程序时遇到了这个错误。按照书上的规定,使用 xcode 3.3.2 在 Snow Leopard OSX 10.6.3 中进行标准安装会引发这些错误,

“stdarg.h:没有这样的文件或目录” “float.h:没有这样的文件或目录”

因为它默认为 SDK 10.4。

如果你有这个问题,请将 SDK 设置为 10.6,你应该清楚。

于 2010-05-31T16:50:09.963 回答
0

添加额外的标志,如下所示

CFLAGS += -I"$(YOUR_SYSROOT)/usr/lib/gcc/arm-apple-darwin10/4.2.1/include"
CPPFLAGS += -I"$(YOUR_SYSROOT)/usr/include/c++/4.2.1"
CPPFLAGS += -I"$(YOUR_SYSROOT)/usr/include/c++/4.2.1/armv6-apple-darwin10" 
于 2013-12-30T03:44:37.760 回答