当我尝试从 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
是一个元包,它不会安装任何自己的文件,但依赖于所需的包,因此安装它是一个安全的选择。