【问题标题】:Objective C compiling with clang on Linux Foundation/Foundation.h linking: file not found在 Linux Foundation/Foundation.h 链接中使用 clang 编译的 Objective C:找不到文件
【发布时间】:2014-04-03 18:30:12
【问题描述】:

我正在尝试在 Ubuntu 上用 Objective C 编译一个程序,我已经安装了 GNUstep,设置了所有 GNUSTEP_* 环境变量,并安装了 clang,因为我读到 gcc 无法使用块编译 Objective-C 代码(Objective-C '匿名' 函数,为了清楚起见:^ { })。

当我运行这个命令时我得到了什么: clang hello.m -o hello

是:

hello.m:1:9: fatal error: 'Foundation/Foundation.h' file not found
#import <Foundation/Foundation.h>
        ^
1 error generated.

我也试过这个: clang -L '/usr/include/GNUstep/Foundation/Foundation.h' hello.m -o hello

/usr/include/... 是我系统上 Foundation.h 文件的路径;但我仍然得到相同的结果。

如何自动链接这些头文件并编译 Objective-C?

谢谢!

【问题讨论】:

  • 一般来说,使用 GNUmakefile 构建比尝试自己提供所有参数要容易得多。见gnustep.it/nicola/Tutorials/WritingMakefiles
  • 另外,-L 用于指定 library 目录,即您也可以使用其名称的 .so 或 .dylib 文件的位置使用-l 提供。也许你在想-I/usr/include/GNUstep;这将告诉它 include 文件的根目录在哪里。在任何情况下,您都不会提供实际库或头文件的完整路径(好吧,可以提供库文件的路径,但很少这样做)。
  • 显然您正在使用 gcc objc 运行时。哪个 IIRC 不支持阻止。你最好使用 libobjc2
  • 好的,我检查了存储库并安装了 libojc4,但我找不到 libobjc2,这是一个问题吗?
  • libobjc2 是来自 gnustep 的库:github.com/gnustep/gnustep-libobjc2

标签: objective-c compilation clang gnustep


【解决方案1】:

你可以使用 gnustep-config:

clang `gnustep-config --objc-flags` `gnustep-config --objc-libs` hello.m -o hello

【讨论】:

  • 谢谢,我搬了一些东西。现在我没有收到 Foundation/Foundation.h 错误,但是:
  • 抱歉,我留下了这个:/usr/GNUstep/System/Library/Headers/Foundation/Foundation.h:31:9: 致命错误:'objc/objc.h' 文件未找到 --我可以假设 clang 找不到 objc/objc.h 文件,对吗?显然该文件位于此路径中(我使用了 locate objc/objc.h 命令):/usr/lib/gcc/x86_64-linux-gnu/4.7/include/objc/objc.h 那么我该如何将它绑定到当我启动它时,clang 的路径是什么?
  • 您需要 objc 运行时。你最好使用 GNUstep Makefile。
  • 是的,使用 GNUstep Makefile 一切都很好,除了我不能用 Blocks 编译代码,我需要它们,所以我想出了编译块的 clang,但我仍然得到这个错误。如何下载 objc 运行时,它在 Ubuntu 存储库中可用吗?
  • 当你构建 GNUStep 时,你必须指定默认编译器是 clang。在构建 GNUstep make 时,您应该使用./configure CC=clang CXX=clang++ 对其进行配置。重建并安装 GNUStep make,你就会拥有它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多