我正在尝试将 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 位对象。编译器发出的错误消息可能有助于解决此问题。
补救措施
- 构建 64 位目标(通过删除强制 32 位构建的配置选项),或者
- 安装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
它执行这些行就像将它们输入到终端中一样。