使用外部库引用编译C代码

时间:2013-08-07 21:28:54

标签: c linux join compiler-errors

我在RHEL 6.0上并掌握了join命令的源代码(希望来自正确的源代码!!)。我很少使用C代码,因此发现这很困难。我正在尝试编译并运行join的C代码,但遇到编译时错误。

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命令?

2 个答案:

答案 0 :(得分:2)

这不是您建议的链接问题。相反,您会收到这些错误,因为g++找不到这些文件:config.hsystem.h,...,#include d(间接){{1} }}

您可以在系统上join.c这些文件,然后在find后面添加尽可能多的-I<directory>选项,因为您找到了这些文件的目录。执行{{{ 1}}了解更多信息。

您还需要找到需要链接的库的位置。因此,您需要指定的时间超过g++

另一方面,是不是'configure'或其他包文件?通常,您不必手动指定编译器标志(如此man g++)。相反,通常情况下,例如Makefile是从这样的配置文件生成的,之后您只需键入-I

我建议你先找一个这样做过的人,因为你似乎并不了解C程序编译的基础知识。这可能会花费你很多宝贵的时间而没有结果。但祝你好运!

答案 1 :(得分:-2)

也许你没有一切都可以编译你的代码。尝试安装build-essential包。

sudo yum install build-essential

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