configure: erreur: le compilateur C ne peut pas créer dexécutables

Jessaye de mettre à jour Apache 2.2.15 vers 2.2.27. En exécutant config.nice tiré de apache2.2.15 / build, jobtiens lerreur suivante:

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 

Jai essayé de rechercher en ligne mais pas de chance. Jai également testé le compilateur c en exécutant un petit script test.c et il fonctionne bien. Il y avait peu de solution donnée en ligne comme linstallation du paquet « kernel-devel » mais cela na pas résolu le problème. Comment puis-je faire fonctionner cela?

Voici le fichier config.log généré:

 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 

Commentaires

Answer

À partir de la sortie que vous avez donnée, vous essayez de compiler une version 32 bits dApache sur un système 64 bits. Ceci est de lentrée à configurer ici:

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

Voir aussi les lignes de sortie confirmant ceci:

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 

Ici, il utilise un système de construction 64 bits mais un hôte / cible 32 bits. Plus bas, nous voyons:

ac_cv_env_CFLAGS_set=set ac_cv_env_CFLAGS_value=-m32 

Cet indicateur indique à gcc de produire des objets 32 bits. Votre erreur selon laquelle le compilateur C ne peut pas produire dexécutable est probablement causée par labsence dun Chaîne doutils 32 bits présente.

Test de votre capacité à comp ile objets 32 bits

Vous pouvez tester cela en compilant un petit exemple C avec lindicateur -m32.

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

Compilation:

gcc -m32 -o m32test m32test.c 

Si cette commande échoue, alors vous avez un problème avec votre compilateur capable de construire des objets 32 bits. Les messages derreur émis par le compilateur peuvent être utiles pour remédier à cela.

Remèdes

  1. Construire pour une cible 64 bits (en supprimant les options de configuration forçant une construction 32 bits) , ou
  2. Installez une chaîne doutils de compilation 32 bits

Commentaires

  • @Vishal qui semble confirmer que vous ne ‘ t avoir une configuration denvironnement de construction 32 bits. Avez-vous besoin dun apache 32 bits?
  • Apparemment oui. Lapache 2.2.15 existant a été compilé avec lindicateur m32. Je veux le mettre à niveau vers 2.2.27 au lieu deffectuer une nouvelle installation 2.2.27. Puis-je faire cela en créant une cible 64 bits? Ou devrais-je installer la chaîne doutils du compilateur 32 bits pour le faire fonctionner.
  • Merci. Linstallation de glibc-devel.i386 a résolu mon problème. Bravo!

Réponse

CC="" 

Me dit quaucun compilateur est réglé. Avez-vous installé gcc?

Essayez:

which gcc 

Sur Debian, vous devez probablement installer un environnement de compilation avec:

apt-get install build-essential 

Ou, mieux encore:

apt-get build-dep your-package-name 

Commentaires

  • merci tout spécial pour apt-get install build-essential

Réponse

Il peut y avoir de nombreuses raisons à cela. Ce qui marrive le plus souvent, cest que je jette mes CFLAGS soit sur la ligne de commande, soit en en ayant un dans mon environnement. Cela marrive quelques fois par an et je dois généralement sur Google parce que je ne me souviens jamais du correctif. « Oh, encore une fois »

Essayez simplement echo $CFLAGS La plupart du temps, il ne devrait « rien y avoir là-dedans. Sil y en a, cest peut-être faux.

Dans un autre cas, jai ajouté une ligne à un script de configuration qui fonctionnait sous Linux 32 bits, mais jétais passé à 64 bits depuis et certains éléments de -march -mfpu étaient maintenant erronés. Mon point est, cest « sa mauvais message derreur, cela signifie quil y a eu une erreur de compilation, pas que le compilateur ne fonctionne pas.

Réponse

Jai obtenu cette erreur alors que je pensais avoir installé le compilateur C mais quil nétait pas réellement installé.

Javais un script exécutable pour charger les modules C que javais exécutés comme suit:

./load_modules.sh 

Mais lexécution dun script ne charge les modules que pendant la durée de ce script. Pour que le script garde les modules chargés, vous devez exécuter:

source load_modules.sh 

qui exécute les lignes comme si elles « étaient tapées dans le terminal.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *