C 编译器无法创建可执行文件

C 编译器无法创建可执行文件

当我尝试从 tarball 安装 openvpn 时,出现以下错误

检查 C 编译器是否工作... 没有
configure:错误:在“/home/shubhamd/Downloads/openvpn-2.3.2”中:configure:错误:C 编译器无法创建可执行文件

有关详细信息,请参阅“config.log”

config.log如下:

此文件包含编译器在以下情况下生成的任何消息:
运行配置,以便在配置出现错误时帮助调试。

它是由 OpenVPN configure 2.3.2 创建的,
由 GNU Autoconf 2.69 生成。调用命令行是

  $./configure

## --------- ##
## 平台。 ##
## --------- ##

主机名 = shubhamd
uname -m = x86_64
uname -r = 3.11.0-12-通用
uname -s=Linux
uname -v = #19-Ubuntu SMP 2013 年 10 月 9 日星期三 16:20:46 UTC

/usr/bin/uname -p = 未知
/bin/uname -X = 未知

/bin/arch = 未知
/usr/bin/arch -k = 未知
/usr/convex/getsysinfo = 未知
/usr/bin/hostinfo = 未知
/bin/machine = 未知
/usr/bin/oslevel = 未知
/bin/universe = 未知

路径:/usr/local/sbin
路径:/usr/local/bin
路径:/usr/sbin
路径:/usr/bin
路径:/sbin
路径:/bin
路径:/usr/games
路径:/usr/local/games


## ----------- ##
## 核心测试。##
## ----------- ##

配置:2873:检查与 BSD 兼容的安装
配置:2941:结果:/usr/bin/install -c
配置:2952:检查构建环境是否合理
配置:3002:结果:是
配置:3143:检查线程安全的 mkdir -p
配置:3182:结果:/bin/mkdir -p
配置:3195:检查 gawk
配置:3211:找到 /usr/bin/gawk
配置:3222:结果:gawk
配置:3233:检查 make 是否设置了 $(MAKE)
配置:3255:结果:是
配置:3339:检查构建系统类型
配置:3353:结果:x86_64-unknown-linux-gnu
配置:3373:检查主机系统类型
配置:3386:结果:x86_64-unknown-linux-gnu
配置:3418:检查 make 使用的包含样式
配置:3446:结果:GNU
配置:3517:检查 gcc
配置:3533:找到 /usr/bin/gcc
配置:3544:结果:gcc
配置:3773:检查 C 编译器版本
配置:3782:gcc--版本>&5
gcc(Ubuntu/Linaro 4.8.1-10ubuntu8)4.8.1
版权所有 (C) 2013 自由软件基金会,Inc.
这是免费软件;请参阅来源以了解复制条件。没有
保证;甚至不针对适销性或特定用途的适用性。

配置:3793:$? = 0
配置:3782:gcc-v>&5
使用内置规格。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper
目标:x86_64-linux-gnu
配置为:../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.8.1-10ubuntu8' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --启用-gnu-unique-object --启用插件 --with-system-zlib --禁用浏览器插件 --启用-java-awt=gtk --启用-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --启用-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --启用-objc-gc --启用-multiarch --禁用-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
线程模型:posix
gcc 版本 4.8.1(Ubuntu/Linaro 4.8.1-10ubuntu8)
配置:3793:$? = 0
配置:3782:gcc-V>&5
gcc:错误:无法识别的命令行选项‘-V’
gcc:致命错误:没有输入文件
编译终止。
配置:3793:$? = 4
配置:3782:gcc-qversion>&5
gcc:错误:无法识别的命令行选项‘-qversion’
gcc:致命错误:没有输入文件
编译终止。
配置:3793:$? = 4
configure:3813:检查 C 编译器是否工作
配置:3835:gcc conftest.c >&5
/usr/bin/ld:找不到 crt1.o:没有此文件或目录
/usr/bin/ld:找不到 crti.o:没有此文件或目录
/usr/bin/ld:找不到 -lc
/usr/bin/ld:找不到 crtn.o:没有此文件或目录
collect2:错误:ld 返回 1 退出状态
配置:3839:$? = 1
配置:3877:结果:否
配置:失败的程序是:
| /* confdefs.h */
| #定义 PACKAGE_NAME “OpenVPN”
| #定义 PACKAGE_TARNAME “openvpn”
| #定义包版本“2.3.2”
| #定义 PACKAGE_STRING “OpenVPN 2.3.2”
| #定义 PACKAGE_BUGREPORT "[电子邮件保护]
| #定义 PACKAGE_URL ""
|#定义OPENVPN_VERSION_RESOURCE 2,3,2,0
| #定义包“openvpn”
| #定义版本“2.3.2”
| /* 结束 confdefs.h。*/
|
| 整数
| 主要()
| {
|
| ;
| 返回 0;
| }
配置:3882:错误:在“/home/shubhamd/Downloads/openvpn-2.3.2”中:
配置:3884:错误:C 编译器无法创建可执行文件
有关详细信息,请参阅“config.log”

如何修复错误?

答案1

您可能需要安装该libc6-dev软件包。您看到的错误表明链接器 ( ld) 无法链接到 C 库(crt1.o例如,它提到的目标文件是此软件包的一部分)。

我建议你这样做sudo apt-get install build-essential,它将安装基本构建所需的基本工具和包。build-essential是一个元包,它不会安装任何自己的文件,但依赖于所需的包,因此安装它是一个安全的选择。

相关内容