【发布时间】:2020-07-31 12:49:51
【问题描述】:
我有以下问题:
我在 Ubuntu 20.04 上,我正在尝试设置 GNUstep,这是我想要构建的某些源二进制文件所必需的
(为了完整起见,我要构建的程序称为Advanced Rendering Toollḱit,信息可以在这里找到:https://cgg.mff.cuni.cz/ART/)。
使用 clang-9 编译器构建时,调用 make 命令后,我收到以下错误消息:
致命错误:找不到“objc/objc.h”文件
我应该提一下,总的来说,我对 Linux 还是很陌生。我所做的是通过
安装GNUstepsudo apt-get install gnustep gnustep-devel
按照网站上的建议 (http://wiki.gnustep.org/index.php/GNUstep_under_Ubuntu_Linux)。它导致收到上述错误。
/usr/include/GNUstep/Foundation/Foundation.h:31:9:致命错误:找不到'objc/objc.h'文件
接下来我尝试从同一网页下载提供的配置脚本并执行它们。当我这样做时,我收到了以下反馈:
检查 objc 是否真的有效……不。我似乎无法使用您的 Objective-C 编译器来生成 工作二进制文件!请检查您的 Objective-C 编译器安装。 如果您使用 gcc-3.x,请确保您的编译器的 libgcc_s 和 libobjc 可以通过动态链接器找到 - 通常需要您玩 使用 LD_LIBRARY_PATH 或 /etc/ld.so.conf。 请参阅您的编译器安装说明以获得更多帮助。 配置:错误:Objective-C 编译器不工作或未正确安装。
也许我弄错了,但是,我安装 GNUstep 的全部目的是让 Objective-C 编程在非 Apple 机器上成为可能。因此我不明白为什么它抱怨一个非工作的Objective-C编译器(顺便说一下,当我使用 gcc 和 g++ 作为编译器)。
我确实做了一些研究,发现了一些 StackOverflow 帖子,建议我安装 libobjc2,但我怀疑这在 Ubuntu 20.04 中会被贬值。
老实说,我不知道出了什么问题,我非常感谢您朝着正确的方向前进!非常感谢您帮助我!
【问题讨论】:
-
问题似乎是编译器的错误提示。如果您只是对非 Apple 中的 Objective-C 感兴趣,那么请查看 ObjFW ... GNUstep 是一个非常难以设置和开始工作的程序。但是这两个(GNUstep 和 ObjFW)都比 Apple FWIW 的替代品更具学术性。
-
在 Arch Linux 上,你需要 gcc-objc,所以我认为像
sudo apt-get install gcc-objc这样的东西可以在你的环境中工作? -
嗨@skaak,非常感谢您的意见。 Ubuntu 上似乎有一个名为“gobjc”的软件包。 “gobjc++”。我都安装了,又累了,错误仍然存在。 (背景:我想要构建的工具是用于研究,它主要是在 Apple 机器上开发的,这就是为什么 GNUstep 是一个依赖项。它用于我的大学论文。购买 Apple 计算机或 hackintosh 并不是真正的选择我...所以是 GNUstep :)。虽然,作为一个初学者,它让我很忙)
-
嗨 - 是的,我看过那个工具。一两年前的 FWIW,我让 Objective-C 在 Arch 上工作没问题,但我永远无法编译 GNUstep。我只是想尝试一下,ObjFW 对此非常好,但我想它对于你想要的东西并不值得。无论如何,如果我所做的有帮助的话,那就是让 Objective-C 在 Linux 下运行并不难。我让 gnu 和 llvm 都能轻松工作,但没有做笔记,只使用了标准的 Arch 包。我认为只需确保您已在 Linux 中正确安装了完整的开发环境,然后再试一次。
-
FWIW 我刚刚编译好了。刚刚将 ART 下载到我的 Arch Linux 中......必须安装 cmake 并在安装根目录中运行
cmake CMakeLists.txt和make。
标签: objective-c linux ubuntu gnustep