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

时间:2010-12-27 10:30:17

标签: c ruby gcc compiler-construction

我正在尝试在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,但我不知道如何做到这一点。请帮忙!!!

4 个答案:

答案 0 :(得分:7)

您是否安装了“ruby-dev”软件包?

您只需要从Ubuntu repositorie安装软件包(使用“apt-get”,“aptitude”或任何其他软件包管理器前端)。无需下载源代码。安装包将在标准目录中包含所有必需的浏览头和库,因此您不必处理编译器密钥。

只有当你在repos中没有所需的软件包时(或者它太旧了),你必须下载源代码tarball并安装它(相应地包含在tarball指令中,通常在文件INSTALL中)。

答案 1 :(得分:1)

-I /home/braga/ruby_source/ruby_1_8_7。有可能ruby.h存在于某个子目录中,所以你必须找到它,然后使用该目录的路径。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

由于您似乎正在尝试编译Ruby扩展,this question可能对您有用。请注意,下载源代码或手动破解某些东西总是一个坏主意,总有一种官方的,方便的方法。如果您发现自己将文件放在随机位置,请暂停一段时间并检查以确保您没有做错事。

除了纯粹出于方便原因,最好从存储库安装所有相关的开发包,因为您下载的标头可能与您计划链接的二进制库不匹配。如果它们没有,如果它们不是二进制兼容的,那么你会发现自己遇到了很大的麻烦。 apt-file search和apt-cache搜索命令在查找所需的特定包名时非常有用。