Compiling
配置:錯誤: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
根據您給出的輸出,您正在嘗試在 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 位對象。編譯器發出的錯誤消息可能有助於解決這個問題。
補救措施
- 為 64 位目標建構(通過刪除強制 32 位建構的配置選項),或
- 安裝 32 位編譯器工具鏈