配置:错误:C 编译器无法创建可执行文件

配置:错误:C 编译器无法创建可执行文件

我正在尝试将 apache 2.2.15 升级到 2.2.27。运行从 apache2.2.15/build 获取的 config.nice 时,出现以下错误:

checking whether the C compiler works... no
configure: error: in `/home/vkuser/httpd-2.2.27/srclib/apr':
configure: error: C compiler cannot create executables

我尝试在网上搜索但没有成功。我还通过运行一个小的 test.c 脚本测试了 c 编译器,它运行良好。网上给出的解决方案很少,例如安装“kernel-devel”包,但它没有解决问题。我怎样才能让它发挥作用?

以下是生成的 config.log:

    This file contains any messages produced by compilers while
    running configure, to aid debugging if configure makes a mistake.

    It was created by configure, which was
    generated by GNU Autoconf 2.67.  Invocation command line was

      $ ./configure --prefix=/opt/myapp/apache2.2 --with-mpm=worker --enable-static-support --enable-ssl=static --enable-modules=most --disable-authndbd --disable-authn-dbm --disable-dbd --enable-static-logresolve --enable-static-rotatelogs --enable-proxy=static --enable-proxyconnect=static --enable-proxy-ftp=static --enable-proxy-http=static --enable-rewrite=static --enable-so=static --with-ssl=/opt/myapp/apache2.2/openssl --host=x86_32-unknown-linux-gnu host_alias=x86_32-unknown-linux-gnu CFLAGS=-m32 LDFLAGS=-m32 --with-included-apr

    ## --------- ##
    ## Platform. ##
    ## --------- ##

    hostname = dmcpq-000
    uname -m = x86_64
    uname -r = 2.6.18-348.12.1.el5
    uname -s = Linux
    uname -v = #1 SMP Mon Jul 1 17:54:12 EDT 2013

    /usr/bin/uname -p = unknown
    /bin/uname -X     = unknown

    /bin/arch              = x86_64
    /usr/bin/arch -k       = unknown
    /usr/convex/getsysinfo = unknown
    /usr/bin/hostinfo      = unknown
    /bin/machine           = unknown
    /usr/bin/oslevel       = unknown
    /bin/universe          = unknown

    PATH: /opt/myapp/Entrust/GetAccess/Runtime/Apache22/bin
    PATH: /usr/kerberos/sbin
    PATH: /usr/kerberos/bin
    PATH: /usr/local/sbin
    PATH: /usr/local/bin
    PATH: /sbin
    PATH: /bin
    PATH: /usr/sbin
    PATH: /usr/bin
    PATH: /root/bin


    ## ----------- ##
    ## Core tests. ##
    ## ----------- ##

    configure:2793: checking for chosen layout
    configure:2795: result: Apache
    configure:3598: checking for working mkdir -p
    configure:3614: result: yes
    configure:3629: checking build system type
    configure:3643: result: x86_64-unknown-linux-gnu
    configure:3663: checking host system type
    configure:3676: result: x86_32-unknown-linux-gnu
    configure:3696: checking target system type
    configure:3709: result: x86_32-unknown-linux-gnu

    ## ---------------- ##
    ## Cache variables. ##
    ## ---------------- ##

    ac_cv_build=x86_64-unknown-linux-gnu
    ac_cv_env_CC_set=
    ac_cv_env_CC_value=
    ac_cv_env_CFLAGS_set=set
    ac_cv_env_CFLAGS_value=-m32
    ac_cv_env_CPPFLAGS_set=
    ac_cv_env_CPPFLAGS_value=
    ac_cv_env_CPP_set=
    ac_cv_env_CPP_value=
    ac_cv_env_LDFLAGS_set=set
    ac_cv_env_LDFLAGS_value=-m32
    ac_cv_env_LIBS_set=
    ac_cv_env_LIBS_value=
    ac_cv_env_build_alias_set=
    ac_cv_env_build_alias_value=
    ac_cv_env_host_alias_set=set
    ac_cv_env_host_alias_value=x86_32-unknown-linux-gnu
    ac_cv_env_target_alias_set=
    ac_cv_env_target_alias_value=
    ac_cv_host=x86_32-unknown-linux-gnu
    ac_cv_mkdir_p=yes
    ac_cv_target=x86_32-unknown-linux-gnu

    ## ----------------- ##
    ## Output variables. ##
    ## ----------------- ##

    APACHECTL_ULIMIT=''
    APR_BINDIR=''
    APR_CONFIG=''
    APR_INCLUDEDIR=''
    APR_VERSION=''
    APU_BINDIR=''
    APU_CONFIG=''
    APU_INCLUDEDIR=''
    APU_VERSION=''
    AP_BUILD_SRCLIB_DIRS=''
    AP_CLEAN_SRCLIB_DIRS=''
    AP_LIBS=''
    AWK=''
    BUILTIN_LIBS=''
    CC=''
    CFLAGS='-m32'
    CORE_IMPLIB=''
    CORE_IMPLIB_FILE=''
    CPP=''
    CPPFLAGS=''
    CRYPT_LIBS=''
    CXX=''
    CXXFLAGS=''
    DEFS=''
    DSO_MODULES=''
    ECHO_C=''
    ECHO_N='-n'
    ECHO_T=''
    EGREP=''
    EXEEXT=''
    EXTRA_CFLAGS=''
    EXTRA_CPPFLAGS=''
    EXTRA_CXXFLAGS=''
    EXTRA_INCLUDES=''
    EXTRA_LDFLAGS=''
    EXTRA_LIBS=''
    GREP=''
    HTTPD_LDFLAGS=''
    HTTPD_VERSION=''
    INCLUDES=''
    INSTALL=''
    INSTALL_DSO=''
    INSTALL_PROG_FLAGS=''
    LDFLAGS='-m32'
    LIBOBJS=''
    LIBS=''
    LIBTOOL=''
    LN_S=''
    LTCFLAGS=''
    LTFLAGS=''
    LTLIBOBJS=''
    LT_LDFLAGS=''
    LYNX_PATH=''
    MKDEP=''
    MKINSTALLDIRS=''
    MK_IMPLIB=''
    MODULE_CLEANDIRS=''
    MODULE_DIRS=''
    MOD_ACTIONS_LDADD=''
    MOD_ALIAS_LDADD=''
    MOD_ASIS_LDADD=''
    MOD_AUTHNZ_LDAP_LDADD=''
    MOD_AUTHN_ALIAS_LDADD=''
    MOD_AUTHN_ANON_LDADD=''
    MOD_AUTHN_DBD_LDADD=''
    MOD_AUTHN_DBM_LDADD=''
    MOD_AUTHN_DEFAULT_LDADD=''
    MOD_AUTHN_FILE_LDADD=''
    MOD_AUTHZ_DBM_LDADD=''
    MOD_AUTHZ_DEFAULT_LDADD=''
    MOD_AUTHZ_GROUPFILE_LDADD=''
    MOD_AUTHZ_HOST_LDADD=''
    MOD_AUTHZ_OWNER_LDADD=''
    MOD_AUTHZ_USER_LDADD=''
    MOD_AUTH_BASIC_LDADD=''
    MOD_AUTH_DIGEST_LDADD=''
    MOD_AUTOINDEX_LDADD=''
    MOD_BUCKETEER_LDADD=''
    MOD_CACHE_LDADD=''
    MOD_CASE_FILTER_IN_LDADD=''
    MOD_CASE_FILTER_LDADD=''
    MOD_CERN_META_LDADD=''
    MOD_CGID_LDADD=''
    MOD_CGI_LDADD=''
    MOD_CHARSET_LITE_LDADD=''
    MOD_DAV_FS_LDADD=''
    MOD_DAV_LDADD=''
    MOD_DAV_LOCK_LDADD=''
    MOD_DBD_LDADD=''
    MOD_DEFLATE_LDADD=''
    MOD_DIR_LDADD=''
    MOD_DISK_CACHE_LDADD=''
    MOD_DUMPIO_LDADD=''
    MOD_ECHO_LDADD=''
    MOD_ENV_LDADD=''
    MOD_EXAMPLE_LDADD=''
    MOD_EXPIRES_LDADD=''
    MOD_EXT_FILTER_LDADD=''
    MOD_FILE_CACHE_LDADD=''
    MOD_FILTER_LDADD=''
    MOD_HEADERS_LDADD=''
    MOD_HTTP_LDADD=''
    MOD_IDENT_LDADD=''
    MOD_IMAGEMAP_LDADD=''
    MOD_INCLUDE_LDADD=''
    MOD_INFO_LDADD=''
    MOD_ISAPI_LDADD=''
    MOD_LDAP_LDADD=''
    MOD_LOGIO_LDADD=''
    MOD_LOG_CONFIG_LDADD=''
    MOD_LOG_FORENSIC_LDADD=''
    MOD_MEM_CACHE_LDADD=''
    MOD_MIME_LDADD=''
    MOD_MIME_MAGIC_LDADD=''
    MOD_NEGOTIATION_LDADD=''
    MOD_OPTIONAL_FN_EXPORT_LDADD=''
    MOD_OPTIONAL_FN_IMPORT_LDADD=''
    MOD_OPTIONAL_HOOK_EXPORT_LDADD=''
    MOD_OPTIONAL_HOOK_IMPORT_LDADD=''
    MOD_PROXY_AJP_LDADD=''
    MOD_PROXY_BALANCER_LDADD=''
    MOD_PROXY_CONNECT_LDADD=''
    MOD_PROXY_FTP_LDADD=''
    MOD_PROXY_HTTP_LDADD=''
    MOD_PROXY_LDADD=''
    MOD_PROXY_SCGI_LDADD=''
    MOD_REQTIMEOUT_LDADD=''
    MOD_REWRITE_LDADD=''
    MOD_SETENVIF_LDADD=''
    MOD_SO_LDADD=''
    MOD_SPELING_LDADD=''
    MOD_SSL_LDADD=''
    MOD_STATUS_LDADD=''
    MOD_SUBSTITUTE_LDADD=''
    MOD_SUEXEC_LDADD=''
    MOD_UNIQUE_ID_LDADD=''
    MOD_USERDIR_LDADD=''
    MOD_USERTRACK_LDADD=''
    MOD_VERSION_LDADD=''
    MOD_VHOST_ALIAS_LDADD=''
    MPM_LIB=''
    MPM_NAME=''
    MPM_SUBDIR_NAME=''
    NONPORTABLE_SUPPORT=''
    NOTEST_CFLAGS=''
    NOTEST_CPPFLAGS=''
    NOTEST_CXXFLAGS=''
    NOTEST_LDFLAGS=''
    NOTEST_LIBS=''
    OBJEXT=''
    OS=''
    OS_DIR=''
    OS_SPECIFIC_VARS=''
    PACKAGE_BUGREPORT=''
    PACKAGE_NAME=''
    PACKAGE_STRING=''
    PACKAGE_TARNAME=''
    PACKAGE_URL=''
    PACKAGE_VERSION=''
    PATH_SEPARATOR=':'
    PCRE_CONFIG=''
    PICFLAGS=''
    PILDFLAGS=''
    PKGCONFIG=''
    PORT=''
    POST_SHARED_CMDS=''
    PRE_SHARED_CMDS=''
    RANLIB=''
    RM=''
    RSYNC=''
    SHELL='/bin/sh'
    SHLIBPATH_VAR=''
    SHLTCFLAGS=''
    SH_LDFLAGS=''
    SH_LIBS=''
    SH_LIBTOOL=''
    SSLPORT=''
    SSL_LIBS=''
    UTIL_LDFLAGS=''
    ab_LTFLAGS=''
    abs_srcdir=''
    ac_ct_CC=''
    ap_make_delimiter=''
    ap_make_include=''
    bindir='${exec_prefix}/bin'
    build='x86_64-unknown-linux-gnu'
    build_alias=''
    build_cpu='x86_64'
    build_os='linux-gnu'
    build_vendor='unknown'
    cgidir='${datadir}/cgi-bin'
    checkgid_LTFLAGS=''
    datadir='${prefix}'
    datarootdir='${prefix}/share'
    docdir='${datarootdir}/doc/${PACKAGE}'
    dvidir='${docdir}'
    errordir='${datadir}/error'
    exec_prefix='${prefix}'
    exp_bindir='/opt/myapp/apache2.2/bin'
    exp_cgidir='/opt/myapp/apache2.2/cgi-bin'
    exp_datadir='/opt/myapp/apache2.2'
    exp_errordir='/opt/myapp/apache2.2/error'
    exp_exec_prefix='/opt/myapp/apache2.2'
    exp_htdocsdir='/opt/myapp/apache2.2/htdocs'
    exp_iconsdir='/opt/myapp/apache2.2/icons'
    exp_includedir='/opt/myapp/apache2.2/include'
    exp_installbuilddir='/opt/myapp/apache2.2/build'
    exp_libdir='/opt/myapp/apache2.2/lib'
    exp_libexecdir='/opt/myapp/apache2.2/modules'
    exp_localstatedir='/opt/myapp/apache2.2'
    exp_logfiledir='/opt/myapp/apache2.2/logs'
    exp_mandir='/opt/myapp/apache2.2/man'
    exp_manualdir='/opt/myapp/apache2.2/manual'
    exp_proxycachedir='/opt/myapp/apache2.2/proxy'
    exp_runtimedir='/opt/myapp/apache2.2/logs'
    exp_sbindir='/opt/myapp/apache2.2/bin'
    exp_sysconfdir='/opt/myapp/apache2.2/conf'
    host='x86_32-unknown-linux-gnu'
    host_alias='x86_32-unknown-linux-gnu'
    host_cpu='x86_32'
    host_os='linux-gnu'
    host_vendor='unknown'
    htcacheclean_LTFLAGS=''
    htdbm_LTFLAGS=''
    htdigest_LTFLAGS=''
    htdocsdir='${datadir}/htdocs'
    htmldir='${docdir}'
    htpasswd_LTFLAGS=''
    httxt2dbm_LTFLAGS=''
    iconsdir='${datadir}/icons'
    includedir='${prefix}/include'
    infodir='${datarootdir}/info'
    installbuilddir='${datadir}/build'
    libdir='${exec_prefix}/lib'
    libexecdir='${exec_prefix}/modules'
    localedir='${datarootdir}/locale'
    localstatedir='${prefix}'
    logfiledir='${localstatedir}/logs'
    logresolve_LTFLAGS=''
    mandir='${prefix}/man'
    manualdir='${datadir}/manual'
    nonssl_listen_stmt_1=''
    nonssl_listen_stmt_2=''
    oldincludedir='/usr/include'
    other_targets=''
    pdfdir='${docdir}'
    perlbin=''
    prefix='/opt/myapp/apache2.2'
    progname=''
    program_transform_name='s,x,x,'
    proxycachedir='${localstatedir}/proxy'
    psdir='${docdir}'
    rel_bindir='bin'
    rel_cgidir='cgi-bin'
    rel_datadir=''
    rel_errordir='error'
    rel_exec_prefix=''
    rel_htdocsdir='htdocs'
    rel_iconsdir='icons'
    rel_includedir='include'
    rel_installbuilddir='build'
    rel_libdir='lib'
    rel_libexecdir='modules'
    rel_localstatedir=''
    rel_logfiledir='logs'
    rel_mandir='man'
    rel_manualdir='manual'
    rel_proxycachedir='proxy'
    rel_runtimedir='logs'
    rel_sbindir='bin'
    rel_sysconfdir='conf'
    rotatelogs_LTFLAGS=''
    runtimedir='${localstatedir}/logs'
    sbindir='${exec_prefix}/bin'
    shared_build=''
    sharedstatedir='${prefix}/com'
    sysconfdir='${prefix}/conf'
    target='x86_32-unknown-linux-gnu'
    target_alias=''
    target_cpu='x86_32'
    target_os='linux-gnu'
    target_vendor='unknown'

    configure: exit 1

答案1

从您给出的输出来看,您正在尝试在 64 位系统上编译 32 位 apache 版本。这是来自此处配置的输入:

--host=x86_32-unknown-linux-gnu host_alias=x86_32-unknown-linux-gnu CFLAGS=-m32 LDFLAGS=-m32

另请参阅确认这一点的输出行:

configure:3629: checking build system type
configure:3643: result: x86_64-unknown-linux-gnu
configure:3663: checking host system type
configure:3676: result: x86_32-unknown-linux-gnu
configure:3696: checking target system type
configure:3709: result: x86_32-unknown-linux-gnu

这里它使用 64 位构建系统,但使用 32 位主机/目标。再往下我们看到:

ac_cv_env_CFLAGS_set=set
ac_cv_env_CFLAGS_value=-m32

该标志告诉 gcc 生成 32 位对象。 C 编译器无法生成可执行文件的错误可能是由于不存在 32 位工具链而引起的。

测试您编译 32 位对象的能力

您可以通过使用该标志编译一个小型 C 示例来测试这一点-m32

// Minimal C example
#include <stdio.h>
int main()
{
   printf("This works\n");
   return 0;
}

编译:

gcc -m32 -o m32test m32test.c

如果此命令失败,则说明编译器无法构建 32 位对象。编译器发出的错误消息可能有助于解决此问题。

补救措施

  1. 构建 64 位目标(通过删除强制 32 位构建的配置选项),或者
  2. 安装32位编译器工具链

答案2

CC=''

告诉我没有设置编译器。你安装了gcc吗?

尝试:

which gcc

在 Debian 上,您可能需要安装一个构建环境:

apt-get install build-essential

或者,甚至更好:

apt-get build-dep your-package-name

答案3

其原因可能有很多。我最常遇到的情况是,我在命令行上或在我的环境中设置了一组 CFLAGS,从而丢弃了我的 CFLAGS。这种情况每年都会发生几次,我通常必须用谷歌搜索它,因为我从来不记得修复方法。 “噢,又是这样”

尝试一下 echo $CFLAGS 大多数时候里面不应该有任何东西。如果有的话可能是错误的。

在另一种情况下,我向一个在 32 位 Linux 下工作的配置脚本输入了一行,但从那以后我已经切换到 64 位,并且一些 -march -mfpu 的东西现在是错误的。我的观点是,这是一个错误的错误消息,这意味着编译时出现了一些错误,而不是编译器无法工作。

答案4

当我以为我已经安装了 C 编译器但实际上并未安装时,我收到了此错误。

我有一个可执行脚本来加载 C 模块,执行如下:

./load_modules.sh

但是运行脚本只会加载该脚本持续时间内的模块。要让脚本保持模块加载,您必须运行:

source load_modules.sh

它执行这些行就像将它们输入到终端中一样。

相关内容