【问题标题】:Can't build objective-c project when including Foundation包含Foundation时无法构建objective-c项目
【发布时间】:2011-07-23 21:09:46
【问题描述】:

如果这个问题已经得到解答,请提前抱歉,我已经在这里和苹果文档中反复搜索过,但还没有找到导致这个问题的原因。我有一个由包含对内容的引用的“布局”文件驱动的 iOS 应用程序。我想创建一个命令行工具来优化内容并在需要时修改布局文件。例如,通过平铺图像并在布局中将其替换为平铺。

我想创建我的第一个 OSX 工具并使用最新的 Xcode 创建一个 CoreFoundation 项目,它给了我这样的 main.c:

#include <CoreFoundation/CoreFoundation.h>

int main (int argc, const char * argv[])
{
    CFShow(CFSTR("Hello, World!\n"));
    return 0;
}

构建良好。我想使用一些 NS* 类来开始使用命令行参数,但是一旦我包含了 Foundation 框架并添加了这一行:

#include <Foundation/Foundation.h>

我开始遇到大量的构建错误。我想我在这里缺少一些基本的东西,但我看不到它!我选择了错误的模板吗?有更好的吗?或者,在这里使用 Foundation 有什么问题?

【问题讨论】:

  • 会不会还是直接编译成C?如果您将文件扩展名为 .m,它会神奇地编译为 Objective-C 吗?
  • 那个或编译器标志。 /cc @Monolo
  • 是的 - 但我承认我懒得真正检查 Xcode,但我猜更改文件名更简单,至少更容易在 UI 中找到......
  • 得到答案后,我在实用程序窗格中设置了类型并立即编译。对我来说,CoreFoundation 项目是一个 C 项目。我想编写 iOS 只会让我认为 Xcode 都是 Objective-c。谢谢大家!

标签: iphone objective-c osx-snow-leopard


【解决方案1】:

您需要将文件语言设置为 Objective C 才能编译。要么在main.m中重命名main.c

【讨论】:

  • 呃!看了这么久的文件而忽略了扩展名,我觉得特别愚蠢!那解决了它!谢谢!
  • 通常最直接的解决方案是我们未能首先检查的解决方案 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-05
  • 1970-01-01
  • 1970-01-01
  • 2022-01-05
  • 2015-03-21
相关资源
最近更新 更多