0

我在 RHEL 6.0 上并获得了join命令的源代码(希望来自正确的来源!!)。我很少处理 C 代码,因此觉得这很困难。我正在尝试编译和运行 C 代码join,但遇到编译时错误。

g++ join.c
join.c:19:20: error: config.h: No such file or directory
join.c:25:20: error: system.h: No such file or directory
join.c:27:25: error: hard-locale.h: No such file or directory
join.c:28:24: error: linebuffer.h: No such file or directory
join.c:29:24: error: memcasecmp.h: No such file or directory
join.c:30:19: error: quote.h: No such file or directory
join.c:31:21: error: stdio--.h: No such file or directory
join.c:32:22: error: xmemcoll.h: No such file or directory
join.c:33:21: error: xstrtol.h: No such file or directory
join.c:34:22: error: argmatch.h: No such file or directory

由于我不知道在哪里可以找到这些库(我为每个库都做了谷歌,它们分布在不同的网站上),谁能指导我如何将这些库链接在一起并编译join命令的源代码?

4

2 回答 2

2

这不是您建议的链接问题。相反,您会收到这些错误,因为g++找不到这些文件:config.h, system.h, ..., 是#included (间接) by join.c

您可以做的是find系统上的这些文件,然后在后面添加与您在其中找到这些文件的目录一样多-I<directory>的选项。执行以获取更多信息。g++man g++

您还需要找到需要链接的库的位置。因此,您需要指定的不仅仅是-I's.

另一方面,没有“配置”或其他包文件吗?通常,您不必-I手动指定编译器标志(如 this )。相反,例如 Makefile 是从这样的配置文件生成的,这很常见,之后您只需键入make.

我建议你找一个以前做过这个的人,因为你似乎不了解 C 程序编译的基础知识。这可能会花费您大量宝贵的时间而没有结果。但无论如何祝你好运!

于 2013-08-07T21:56:21.500 回答
-2

也许您没有准备好编译代码的一切。尝试安装build-essential软件包。

sudo yum install build-essential

在相关说明中,我不知道脚本 join.c 但如果您正在寻找一种将一堆文件连接在一起的方法,您可以在cat FILE1 FILE2 FILE3 > BIG_FILE哪里FILE1 FILE2 FILE3加入您想要加入它们的文件。在 RHEL 6.0 下,如果有模式,您也可以使用星号。例如,cat FILE.00* > BIG_FILE

于 2013-08-07T21:38:59.417 回答