如何在Linux中使用GCC编译简单的源文件

问题描述 投票:0回答:4

我正在尝试在 Linux (Ubuntu) 中用 C 语言编译一组源文件。当我尝试运行以下命令时,出现错误,提示“ruby.h”未找到。

gcc custom_ext.c

这给了我以下错误消息。

custom_ext.h:10: fatal error: ruby.h: No such file or directory

所以我下载了整个 Ruby 源代码并将其放在一个虚拟目录中

/home/braga/ruby_source/ruby_1_8_7
。我知道我需要在路径中包含这个目录,以便 GCC 能够识别并获取 ruby.h,但我不知道如何做到这一点。请帮忙!!!

c ruby gcc
4个回答
7
投票

你安装了“ruby-dev”包吗?

您所需要的只是从 Ubuntu 存储库安装软件包(使用“apt-get”、“aptitude”或任何其他软件包管理器前端)。无需下载源。安装包会将所有游览所需的头文件和库放入标准目录中,因此您不必处理编译器密钥。

并且只有当您在存储库中没有所需的软件包(或者它太旧了)时,您才必须下载源代码 tarball 并安装它(相应地包含在 tarball 说明中,通常在文件 INSTALL 中)。


1
投票

-I /home/braga/ruby_source/ruby_1_8_7
ruby.h
很可能位于该目录的某个子目录中,因此您必须找到它,并使用该目录的路径。


1
投票

-我会帮助你。 添加您使用的路径 查找/-名称 ruby.h 这可能是一个起点,您可能需要添加更多路径才能成功编译


1
投票

由于您似乎正在尝试编译 Ruby 扩展,因此 这个问题 可能对您有用。请注意,下载源代码或手动破解某些东西总是一个坏主意,总有一个官方的、方便的方法可以做到这一点。如果您发现自己将文件放在随机的位置,请停下来检查一下以确保您没有做错什么。

除了纯粹出于方便的原因之外,最好从存储库安装所有相关的开发包,因为您下载的标头可能与您计划链接的二进制库不匹配。如果它们不兼容并且不兼容二进制,您就会发现自己陷入了深深的麻烦。 apt-file search 和 apt-cache search 命令对于查找您需要的特定包名称非常有用。

© www.soinside.com 2019 - 2024. All rights reserved.