configuration:错误:C编译器不能创build可执行文件

我已经检查了一些类似的问题在stackoverflow,但还没有find答案。

我试图在Lion OSX上安装memcached,如下所示 。

这是我得到的:

j-court-demones-macbook-pro:libevent-1.4.12-stable jcourtdemone$ ./configure; make checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... ./install-sh -c -d checking for gawk... no checking for mawk... no checking for nawk... no checking for awk... awk checking whether make sets $(MAKE)... yes checking for gcc... gcc checking for C compiler default output file name... configure: error: in `/tmp/libevent-1.4.12-stable': configure: error: C compiler cannot create executables See `config.log' for more details. make: *** No targets specified and no makefile found. Stop. 

我已经重新安装Xcode的build议在几个地方,但没有骰子。

这是我的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.63. Invocation command line was $ ./configure ## --------- ## ## Platform. ## ## --------- ## hostname = j-court-demones-macbook-pro.local uname -m = x86_64 uname -r = 11.3.0 uname -s = Darwin uname -v = Darwin Kernel Version 11.3.0: Thu Jan 12 18:47:41 PST 2012; root:xnu-1699.24.23~1/RELEASE_X86_64 /usr/bin/uname -p = i386 /bin/uname -X = unknown /bin/arch = unknown /usr/bin/arch -k = unknown /usr/convex/getsysinfo = unknown /usr/bin/hostinfo = Mach kernel version: Darwin Kernel Version 11.3.0: Thu Jan 12 18:47:41 PST 2012; root:xnu-1699.24.23~1/RELEASE_X86_64 Kernel configured for up to 8 processors. 4 processors are physically available. 8 processors are logically available. Processor type: i486 (Intel 80486) Processors active: 0 1 2 3 4 5 6 7 Primary memory available: 4.00 gigabytes Default processor set: 109 tasks, 599 threads, 8 processors Load average: 0.98, Mach factor: 7.01 /bin/machine = unknown /usr/bin/oslevel = unknown /bin/universe = unknown PATH: /opt/local/bin PATH: /opt/local/sbin PATH: /opt/local/bin PATH: /opt/local/sbin PATH: /usr/bin PATH: /Developer/usr/bin PATH: /usr/bin PATH: /bin PATH: /usr/sbin PATH: /sbin PATH: /usr/local/bin PATH: /usr/X11/bin ## ----------- ## ## Core tests. ## ## ----------- ## configure:2077: checking for a BSD-compatible install configure:2145: result: /usr/bin/install -c configure:2156: checking whether build environment is sane configure:2199: result: yes configure:2224: checking for a thread-safe mkdir -p configure:2263: result: ./install-sh -c -d configure:2276: checking for gawk configure:2306: result: no configure:2276: checking for mawk configure:2306: result: no configure:2276: checking for nawk configure:2306: result: no configure:2276: checking for awk configure:2292: found /usr/bin/awk configure:2303: result: awk configure:2314: checking whether make sets $(MAKE) configure:2336: result: yes configure:2575: checking for gcc configure:2591: found /Developer/usr/bin/gcc configure:2602: result: gcc configure:2834: checking for C compiler version configure:2842: gcc --version >&5 i686-apple-darwin9-gcc-4.0.1 (GCC) 4.0.1 (Apple Inc. build 5484) Copyright (C) 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. configure:2846: $? = 0 configure:2853: gcc -v >&5 Using built-in specs. Target: i686-apple-darwin9 Configured with: /var/tmp/gcc/gcc-5484~1/src/configure --disable-checking -enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.0/ --with-gxx-include-dir=/include/c++/4.0.0 --with-slibdir=/usr/lib --build=i686-apple-darwin9 --with-arch=apple --with-tune=generic --host=i686-apple-darwin9 --target=i686-apple-darwin9 Thread model: posix gcc version 4.0.1 (Apple Inc. build 5484) configure:2857: $? = 0 configure:2864: gcc -V >&5 gcc-4.0: argument to `-V' is missing configure:2868: $? = 1 configure:2891: checking for C compiler default output file name configure:2913: gcc conftest.c >&5 ld: library not found for -lcrt1.10.5.o collect2: ld returned 1 exit status configure:2917: $? = 1 configure:2955: result: configure: failed program was: | /* confdefs.h. */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE "libevent" | #define VERSION "1.4.12-stable" | /* end confdefs.h. */ | | int | main () | { | | ; | return 0; | } configure:2961: error: in `/tmp/libevent-1.4.12-stable': configure:2964: error: C compiler cannot create executables See `config.log' for more details. ## ---------------- ## ## Cache variables. ## ## ---------------- ## ac_cv_env_CCC_set= ac_cv_env_CCC_value= ac_cv_env_CC_set= ac_cv_env_CC_value= ac_cv_env_CFLAGS_set= ac_cv_env_CFLAGS_value= ac_cv_env_CPPFLAGS_set= ac_cv_env_CPPFLAGS_value= ac_cv_env_CPP_set= ac_cv_env_CPP_value= ac_cv_env_CXXCPP_set= ac_cv_env_CXXCPP_value= ac_cv_env_CXXFLAGS_set= ac_cv_env_CXXFLAGS_value= ac_cv_env_CXX_set= ac_cv_env_CXX_value= ac_cv_env_F77_set= ac_cv_env_F77_value= ac_cv_env_FFLAGS_set= ac_cv_env_FFLAGS_value= ac_cv_env_LDFLAGS_set= ac_cv_env_LDFLAGS_value= 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= ac_cv_env_host_alias_value= ac_cv_env_target_alias_set= ac_cv_env_target_alias_value= ac_cv_path_install='/usr/bin/install -c' ac_cv_prog_AWK=awk ac_cv_prog_ac_ct_CC=gcc ac_cv_prog_make_make_set=yes ## ----------------- ## ## Output variables. ## ## ----------------- ## ACLOCAL='${SHELL} /tmp/libevent-1.4.12-stable/missing --run aclocal-1.10' AMDEPBACKSLASH='' AMDEP_FALSE='' AMDEP_TRUE='' AMTAR='${SHELL} /tmp/libevent-1.4.12-stable/missing --run tar' AR='' AUTOCONF='${SHELL} /tmp/libevent-1.4.12-stable/missing --run autoconf' AUTOHEADER='${SHELL} /tmp/libevent-1.4.12-stable/missing --run autoheader' AUTOMAKE='${SHELL} /tmp/libevent-1.4.12-stable/missing --run automake-1.10' AWK='awk' BUILD_WIN32_FALSE='' BUILD_WIN32_TRUE='' CC='gcc' CCDEPMODE='' CFLAGS='' CPP='' CPPFLAGS='' CXX='' CXXCPP='' CXXDEPMODE='' CXXFLAGS='' CYGPATH_W='echo' DEFS='' DEPDIR='' DSYMUTIL='' ECHO='/bin/echo' ECHO_C='\c' ECHO_N='' ECHO_T='' EGREP='' EXEEXT='' F77='' FFLAGS='' GREP='' INSTALL_DATA='${INSTALL} -m 644' INSTALL_PROGRAM='${INSTALL}' INSTALL_SCRIPT='${INSTALL}' INSTALL_STRIP_PROGRAM='$(install_sh) -c -s' LDFLAGS='' LIBOBJS='' LIBS='' LIBTOOL='' LIBTOOL_DEPS='' LN_S='' LTLIBOBJS='' MAKEINFO='${SHELL} /tmp/libevent-1.4.12-stable/missing --run makeinfo' MKDIR_P='./install-sh -c -d' NMEDIT='' OBJEXT='' PACKAGE='libevent' PACKAGE_BUGREPORT='' PACKAGE_NAME='' PACKAGE_STRING='' PACKAGE_TARNAME='' PACKAGE_VERSION='' PATH_SEPARATOR=':' RANLIB='' SED='' SET_MAKE='' SHELL='/bin/sh' STRIP='' VERSION='1.4.12-stable' ac_ct_CC='gcc' ac_ct_CXX='' ac_ct_F77='' am__fastdepCC_FALSE='' am__fastdepCC_TRUE='' am__fastdepCXX_FALSE='' am__fastdepCXX_TRUE='' am__include='' am__isrc='' am__leading_dot='.' am__quote='' am__tar='${AMTAR} chof - "$$tardir"' am__untar='${AMTAR} xf -' bindir='${exec_prefix}/bin' build='' build_alias='' build_cpu='' build_os='' build_vendor='' datadir='${datarootdir}' datarootdir='${prefix}/share' docdir='${datarootdir}/doc/${PACKAGE}' dvidir='${docdir}' exec_prefix='NONE' host='' host_alias='' host_cpu='' host_os='' host_vendor='' htmldir='${docdir}' includedir='${prefix}/include' infodir='${datarootdir}/info' install_sh='$(SHELL) /tmp/libevent-1.4.12-stable/install-sh' libdir='${exec_prefix}/lib' libexecdir='${exec_prefix}/libexec' localedir='${datarootdir}/locale' localstatedir='${prefix}/var' mandir='${datarootdir}/man' mkdir_p='$(top_builddir)/./install-sh -c -d' oldincludedir='/usr/include' pdfdir='${docdir}' prefix='/usr/local' program_transform_name='s,x,x,' psdir='${docdir}' sbindir='${exec_prefix}/sbin' sharedstatedir='${prefix}/com' sysconfdir='${prefix}/etc' target_alias='' ## ----------- ## ## confdefs.h. ## ## ----------- ## #define PACKAGE_NAME "" #define PACKAGE_TARNAME "" #define PACKAGE_VERSION "" #define PACKAGE_STRING "" #define PACKAGE_BUGREPORT "" #define PACKAGE "libevent" #define VERSION "1.4.12-stable" configure: exit 77 

你有一套老的开发者工具。 gcc将其版本报告为4.0.1。 这可能是从旧版本的操作系统迁移而来的。 如果您安装了Xcode 4.3.x,则需要启动它,进入其首选项,select下载选项卡,然后单击命令行工具包旁边的“安装”。

我有10.8安装和命令行工具Xcode 4.4,但我仍然得到这个错误。 而不是重新安装Xcode,我注意到我的config.log中有两个相关的行:

 configure:5130: checking for C compiler version configure:5139: /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.8.xctoolchain/usr/bin/cc --version >&5 

这条道路对我来说不存在。 相反,我有:

 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain 

C编译器(“cc”)位于该xctoolchain目录中。 我创build了一个OSX10.8.xctoolchain的符号链接,指向XcodeDefault.xctoolchain并修复它。 现在,memcached安装脚本可以find编译器版本并继续。

 cd /Applications/Xcode.app/Contents/Developer/Toolchains sudo ln -s XcodeDefault.xctoolchain OSX10.8.xctoolchain 

正如评论中所build议的那样,如果您在优胜美地(10.10)或小牛(10.9)上遇到此问题,则可以更新上面的符号链接命令以指向特定版本( OSX10.9.xctoolchainOSX10.10.xctoolchain )。

当您看到此错误消息时,升级后您可能尚未接受Xcode许可协议

首先,确保你已经升级了你的命令行工具:

 $ xcode-select --install 

现在,苹果希望您在使用这些工具之前同意他们的许可证:

 $ gcc Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo. $ sudo gcc You have not agreed to the Xcode license agreements. You must agree to both license agreements below in order to use Xcode. [...] 

接受后,命令行工具将按预期工作。

我已经在Xcode中安装了命令行工具,但我仍然在错误的:

 line 3619: /usr/bin/gcc-4.2: No such file or directory 

当我inputwhich gcc它返回

 /usr/bin/gcc 

当我进入gcc -v我得到了一堆东西

 .. gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) 

所以我创build了一个符号链接:

 cd /usr/bin sudo ln -s gcc gcc-4.2 

它的工作!

(config.log文件位于试图构build内容的目录中)

我刚刚build立了这个问题的Apache。 我用的解决scheme和Mostafa一样,我不得不导出两个variables:

 export CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc CPP='/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -E' 

这是一个Mac OSX小牛队

对我来说,这是一个gcc问题,由gcc -v突出显示。 最近这个post说是做了sudo xcode-select -switch /Applications/Xcode.app这个问题。

设置“铛”为编译器configuration应该使用为我工作:

 export CC=clang pip install --no-clean pycrypto 

如果有人因为RVM / Ruby创build问题而来到这里(Middleman / Grunt),我已经解决了我的问题。

PS。 steroscott的答案解决了我的问题一段时间后…这一次不是这样的情况。

在我的情况下rvm正试图通过自制软件使用下载的gcc。 我运行一个brew卸载gcc(gcc46),并重新安装ruby代码(旧项目老ruby v)

 $ brew uninstall gcc46 $ rvm install 1.9.3 

在检查需求的过程中,它自动地为我提供了一个新的gcc,并且繁荣,现在一切正在进行。 噢一个大的问题,从rvm命令的gcc安装可能需要大约10-15分钟,而不会抛出任何文本,它不会被冻结:)祝你好运

我疯狂阅读所有这一页,希望find一个解决scheme:

 "configure: error: C compiler cannot create executables" 

最后没有任何工作,因为我的问题是一个“打字”的,并与CFLAGS有关。 在我的.bash_profile文件中,我有:

 export ARM_ARCH="arm64” export CFLAGS="-arch ${ARM_ARCH}" 

正如你可以观察到—导出ARM_ARCH = “arm64” —最后一个引号与第一个引号不一样,第一个(“)是合法的,而第二个(”)不是。
这是因为我错误地使用了TextEdit(我在MacOS下工作),这显然是一个名为SmartQuotes的特性:只要你编辑它旁边的东西,引号就会改变它自己的非法风格。
获得的教训:使用适当的文本编辑器…

在我的情况下,我尝试xcode-select --install但它说,它不是从商店可用。 然后,在Rimian的启发下,我检查了我的gcc: gcc -v ,然后我收到一条消息,说我没有同意。

从这一点来说,我只是遵循了gcc -v的协议过程,在我同意之后,对我来说工作正常。

确保Xcode应用程序名称中没有空格(如果您保留较旧的版本,例如将其重命名为“Xcode 4.app”,则可能发生); 构build工具将在Xcode包path中被引用,许多脚本无法正确处理空格引用。

关于clang iOS交叉编译器

我发现问题是在miphoneos-version-min=5.0 。 我已经变成了miphoneos-version-min=8.0 。 现在起作用了。

我只是想build议使用创build一个简单的test.c文件,并通过写在日志中的命令编译它。