【问题标题】:autoconf complains "C compiler cannot create executables" on Linux Mintautoconf 在 Linux Mint 上抱怨“C 编译器无法创建可执行文件”
【发布时间】:2013-12-19 09:39:52
【问题描述】:

我正在尝试在 32 位和 64 位安装上安装 Linux Mint 16 'petra'。

我的电脑没有互联网连接,因此必须手动安装所有其他软件。作为一名开发人员,我想我会尝试使用 wxWidgets 安装代码块,因此请按照以下说明进行操作:

http://wiki.codeblocks.org/index.php?ti

为了执行安装,我似乎需要先决条件,因此请按照以下说明进行操作 https://developer.gnome.org/gtk3/stable ... lding.html 下载 glib 'stuff',解压并运行配置。

正是在这一点上,事情失败了。我在终端中收到一条消息,指出 C compiler cannot create executablessee config.log for more details 包含(除其他外)以下内容:

gcc version 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu8) 
configure:4072: $? = 0
configure:4061: gcc -V >&5
gcc: error: unrecognized command line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:4072: $? = 4
configure:4061: gcc -qversion >&5
gcc: error: unrecognized command line option '-qversion'
gcc: fatal error: no input files
compilation terminated.

如何诊断这些错误?

【问题讨论】:

  • 这只是 GNU autoconf 探测您的编译器版本。 GCC 无法创建可执行文件通常意味着您没有安装 Glibc 的开发标头,即 /usr/include 中(几乎)没有任何内容。
  • 您好 Hristo,感谢您抽出宝贵时间发表评论。关于我需要做什么,你可以给我任何进一步的指示吗?我只是搜索开发标头并尝试安装它们吗?对linux实在不熟悉,理解不足请见谅。
  • 从未使用过 Mint,但在 Ubuntu(并且 afaik Mint 源自 Ubuntu)中,该软件包称为 libc6-dev。不过,您可能还需要其他开发标头。
  • 你能编译并执行一个简单的“hello world”程序吗?

标签: linux gcc autoconf


【解决方案1】:

在某些版本的 gcc 上,-V 选项告诉它使用指定版本的编译器——但它需要一个参数。它记录在here。该选项似乎已在 4.5.4 和 4.6.4 之间的某个时间被删除。

但是像这样的配置脚本预计会做一些不起作用的事情,因此它可以确定它正在使用什么编译器以及它支持什么功能。看来,此时脚本并未假定它调用的编译器是 gcc。相反,它尝试了许多不同的选项来让编译器报告它自己的版本号。

我认为您向我们展示的错误消息:

gcc: error: unrecognized command line option '-V'

与您遇到的问题无关。

您需要关注紧接在 C 编译器“无法生成可执行文件”的错误消息之前的日志部分。

我要尝试的第一件事是编译并执行一个简单的“hello, world”程序。如果这不起作用,那么你错过了一些东西,你的编译器真的不起作用。如果它确实有效,那么您需要研究 config.log 文件以了解真正导致错误的原因。

我有时会破解configure 脚本以打印更多信息以追踪此类问题。例如,它将生成并编译一个小的 C 程序;您可以添加代码来保存该 C 程序的副本并单独检查它。

【讨论】:

    【解决方案2】:

    我遇到了这个错误,因为我的 Linux 发行版没有附带编译 C 程序所需的一切。 build-essentials 元数据包给了我所需的一切。

    sudo apt-get install build-essential
    

    【讨论】:

      【解决方案3】:

      我也遇到过类似的情况。 configure 和其他命令如果我直接从 shell 运行它们就可以正常工作。我的情况不同。我从另一个 Makefile 运行 ./configure && make 并设置了 CFLAGS 变量。这产生了像你这样的错误。这是因为 CFLAGS 变量。它会影响configure 的工作方式。运行./configure --help 列出了更多影响它的信息。也许您应该检查是否设置了其中任何一个。

      【讨论】:

      • ./configure --help lists a few more that affect it. 你给出查找原因的过程。但是你的解决方案是什么?空CFLAGS?
      【解决方案4】:

      在 RHEL 7 上安装 python 时我遇到了同样的错误。安装这个库对我有用:

      yum install glibc-devel
      yum install glibc-devel.i686
      

      【讨论】:

        【解决方案5】:

        感谢基思的提示。两次遇到这个问题。最初它会在 shell 打印输出中报告这一点:

        gcc: error: unrecognized command line option '-V'
        

        但检查 config.log 发现了真正的问题,它是由 Linux 来宾的 vboxsf 共享文件夹的权限问题引起的。将构建目标文件夹复制到非共享文件夹修复它。

        configure:3995: ./conftest
        ./configure: line 3997: ./conftest: Permission denied
        configure:3999: $? = 126
        configure:4006: error: in `/home/my_virtual_box_shared_folder':
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-03
          • 2021-06-16
          • 1970-01-01
          • 2021-02-04
          • 2013-06-17
          相关资源
          最近更新 更多