我在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
命令?
答案 0 :(得分:2)
这不是您建议的链接问题。相反,您会收到这些错误,因为g++
找不到这些文件:config.h
,system.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