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

ver*_*ion 4 compiling gcc openvpn

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

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

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

和 config.log 如下:

此文件包含编译器生成的任何消息,同时
运行configure,以在configure 出错时帮助调试。

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

  $ ./配置 

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

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

/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
configure: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 --version >&5
gcc (Ubuntu/Linaro 4.8.1-10ubuntu8) 4.8.1
版权所有 (C) 2013 Free Software Foundation, 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。错误 --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 --enable-gnu-unique-object --enable-plugin - -with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0- gcj-4.8-amd64/jre --enable-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 --enable-objc-gc --enable-multiarch --disable-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 */
| #define PACKAGE_NAME "OpenVPN"
| #define PACKAGE_TARNAME "openvpn"
| #define PACKAGE_VERSION "2.3.2"
| #define PACKAGE_STRING "OpenVPN 2.3.2"
| #define PACKAGE_BUGREPORT "openvpn-users@lists.sourceforge.net"
| #define PACKAGE_URL ""
| #define OPENVPN_VERSION_RESOURCE 2,3,2,0
| #define 包“openvpn”
| #define 版本“2.3.2”
| /* 结束 confdefs.h。*/
| 
| 整数
| 主要的 ()
| {
| 
| ;
| 返回0;
| }
配置:3882:错误:在“/home/shubhamd/Downloads/openvpn-2.3.2”中:
配置:3884:错误:C 编译器无法创建可执行文件
有关更多详细信息,请参阅“config.log”

如何修复错误?

roa*_*dmr 6

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

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