configure: ข้อผิดพลาด: คอมไพเลอร์ C ไม่สามารถสร้างไฟล์เรียกทำงานได้


41

ฉันพยายามอัปเกรด apache 2.2.15 เป็น 2.2.27 ในขณะที่ใช้งาน config.nice นำมาจาก apache2.2.15 / บิลด์ฉันได้รับข้อผิดพลาดดังต่อไปนี้:

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

ฉันพยายามค้นหาทางออนไลน์ แต่ไม่มีโชค ฉันได้ทดสอบคอมไพเลอร์ c ด้วยการรันสคริปต์ test.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

คำถามเกี่ยวกับ Stackoverflow อาจช่วยได้เช่น: stackoverflow.com/questions/23498237/ …
jeremiah

ในกรณีของฉันนี้ได้รับการแก้ไขโดยการตั้งค่า CXX = เสียงดังกราว ++ และ CC = เสียงดังกราวก่อนที่จะทำงาน. / กำหนดค่า
Phylliida

คำตอบ:


27

จากผลลัพธ์ที่คุณได้รับคุณกำลังพยายามรวบรวม apache บิลด์ 32 บิตในระบบ 64 บิต นี่คือจากการป้อนข้อมูลเพื่อกำหนดค่าที่นี่:

--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 ไม่สามารถสร้างไฟล์ที่เรียกทำงานได้นั้นมีสาเหตุมาจากไม่มี toolchain ขนาด 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. ติดตั้ง toolchain ตัวรวบรวม 32 บิต

@Vishal ที่ดูเหมือนจะยืนยันว่าคุณไม่มีการตั้งค่าสภาพแวดล้อมการสร้าง 32 บิต คุณต้องการ Apache 32 บิตหรือไม่
casey

เห็นด้วยใช่ apache 2.2.15 ที่มีอยู่ถูกคอมไพล์ด้วยแฟล็ก m32 ฉันต้องการอัพเกรดเป็น 2.2.27 แทนที่จะทำการติดตั้ง 2.2.27 ใหม่ ฉันสามารถทำได้โดยสร้างเป้าหมาย 64 บิตหรือไม่ หรือฉันควรติดตั้ง toolchain ของคอมไพเลอร์ 32 บิตเพื่อให้มันทำงานได้
วิษณุ

ขอบคุณ การติดตั้ง glibc-devel.i386 แก้ปัญหาของฉันได้ ไชโย!
Vishal

13
CC=''

บอกฉันว่าไม่มีคอมไพเลอร์ตั้ง คุณติดตั้ง gcc หรือไม่?

ลอง:

which gcc

บน Debian คุณอาจต้องติดตั้ง build environment ด้วย:

apt-get install build-essential

หรือดียิ่งขึ้น:

apt-get build-dep your-package-name

ขอขอบคุณเป็นพิเศษสำหรับ apt-get install build-essential
Aram Arabyan

2

อาจมีเหตุผลมากมาย สิ่งที่เกิดขึ้นกับฉันบ่อยที่สุดคือฉันทิ้ง CFLAGS ของฉันในบรรทัดคำสั่งหรือโดยมีหนึ่งชุดในสภาพแวดล้อมของฉัน เกิดขึ้นกับฉันปีละสองครั้งและฉันมักจะต้องใช้ Google เพราะฉันไม่เคยจำการแก้ไข "โอ้นั่นอีกครั้ง"

ลอง echo $CFLAGS ใช้เวลาส่วนใหญ่ไม่ควรมีอะไรในนั้น หากมีก็อาจจะผิด

ในอีกกรณีหนึ่งฉันป้อนบรรทัดไปยังสคริปต์การกำหนดค่าที่ทำงานภายใต้ 32 บิต Linux แต่ฉันเปลี่ยนไปเป็น 64 บิตตั้งแต่และบางส่วนของ -march -mfpu stuff ผิดตอนนี้ ประเด็นของฉันคือมันเป็นข้อความแสดงข้อผิดพลาดไม่ดีหมายความว่ามีการรวบรวมข้อผิดพลาดบางอย่างไม่ใช่ว่าคอมไพเลอร์ไม่ทำงาน


0

ฉันได้รับข้อผิดพลาดนี้เมื่อฉันคิดว่าฉันติดตั้งคอมไพเลอร์ C แต่ไม่ได้ติดตั้งจริง

ฉันมีสคริปต์ที่ปฏิบัติการเพื่อโหลดโมดูล C ซึ่งฉันได้ดำเนินการดังนี้

./load_modules.sh

แต่การรันสคริปต์จะโหลดเฉพาะโมดูลสำหรับช่วงเวลาของสคริปต์นั้น หากต้องการให้สคริปต์เก็บโมดูลไว้อย่างต่อเนื่องคุณจะต้องเรียกใช้:

source load_modules.sh

ซึ่งดำเนินการบรรทัดราวกับว่าพวกเขากำลังพิมพ์ลงในเทอร์มินัล

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.