没有这样的文件或文件目录----- stdarg.h和float.h?

时间:2009-10-11 10:46:49

标签: ios c llvm-gcc

我在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

我不知道如何删除此错误有助于删除此错误。

谢谢

Balraj

7 个答案:

答案 0 :(得分:1)

gcc 4.2不支持这些标头,默认情况下在Mac OSX上使用。

切换到版本4.0(描述为here

答案 1 :(得分: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

并且编译错误消失了!

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

我不知道这可能对你的开发有什么影响,但它对我的问题已经足够好了,因为我只是在做一个简单的基本命令行工具。

答案 4 :(得分: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,你应该是明确的。

答案 5 :(得分: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

答案 6 :(得分: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"