Compiling

配置:錯誤:C 編譯器無法創建執行檔

  • October 20, 2018

我正在嘗試將 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

根據您給出的輸出,您正在嘗試在 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 位對象的能力

-m32您可以通過使用該標誌編譯一個小的 C 範例來測試這一點。

// 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 位編譯器工具鏈

引用自:https://unix.stackexchange.com/questions/146402