在Oracle Linux 7.2上编译C代码时出错

时间:2017-09-14 07:18:04

标签: c linux

我正在尝试在Oracle Linux 7.2上编译C代码,该代码在Windows 10上作为VM托管。

运行文件的名称:configure

日志文件名称:confg.log

我被困住的错误

  

gcc:错误:无法识别的命令行选项' -V'

根据我对目前的代码结构的理解,有一个名为configure的文件,它有编译相关的命令,这个文件生成Makefile.am,它进一步生成Makefile.in,最后生成Makefile。

请帮我解决错误,如果我对configure和makefile的理解不正确,请告诉我

2 个答案:

答案 0 :(得分:1)

configure脚本探索构建程序的环境。然后,他们相应地调整所调用的工具,使用的选项和链接的库等。通过尝试使用某些选项执行程序来获得一些信息;程序运行失败是获取给定程序不可用或不采用这些选项的信息的预期方式。因此,如果其中一个不起作用并产生错误,则不一定是错误;它可能是合法结果之一,编译器的(错误,此处)退出代码将用于相应地修改Makefile - 例如省略-V; - )。

配置脚本是否实际停在那里,或者您只是观察日志文件中的错误?如果您在网络上搜索gcc -V,您会发现配置脚本实际上以后失败(出于无关原因)的示例,其中包含相同的“-V错误”行。可能是这样吗?我认为实际上导致configure停止并且不生成Makefile的错误应该在命令行上可见,而不仅仅是在日志文件中。

顺便说一句,运行./configure --help并查看选项是值得的。有些人可能会改善构建过程或结果;例如,您通常可以告诉configure您正在使用gcc,gnu ld等,或者您不需要某些功能(例如X25 ;-))。

答案 1 :(得分:-1)

您应该查看项目的makefile,找出拼写错误的-V选项的位置,并将其替换为-v(小写)。正如其他人在评论-V中所指出的那样,它不是编译标志,而是回馈编译器的版本。