配置:错误:C编译器无法创建可执行文件


141

我已经检查了许多关于stackoverflow的类似问题,但是还没有找到答案。

我正在尝试在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,但是没有骰子。

这是我的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

2
为了避免人们在您的日志中ld: library not found for -lcrt1.10.5.o
寻找麻烦

1
问题是,您是否曾经在此计算机上编译过其他文件,或者这是第一次?
格雷格(Greg Hewgill)2012年

1
恐怕这个问题与编程无关,而是更多关于软件的安装。如果您对编程一无所知,那么可以找到更好的地方来寻找所需的帮助。
格雷格·希吉尔

2
我不确定我是否同意“与编程无关”的判断。她的问题似乎是安装和配置了开发人员工具之一(“当然,我认为它们是默认安装在Lion上的)。如果是这样的话,那将是“编程界独有的工具”,或者是FAQ所说的。
dmckee ---前主持人小猫,

4
我找到这个项目是因为尝试在我肯定已经编程了一段时间的计算机上构建iOS库时遇到了一个非常相似的问题。对我来说似乎很有效!
安迪·邓特

Answers:


117

您有一套旧的开发人员工具。gcc报告其版本为4.0.1。这可能是从较旧版本的OS迁移留下的。如果已安装Xcode 4.3.x,则需要启动它,进入其首选项,选择“下载”选项卡,然后单击“命令行工具”软件包旁边的“安装”。


4
如果您正在阅读此答案,那么绝对应该这样做,但是请注意,它不能解决您尝试构建的其他软件包的问题。因此,首先安装命令行工具,然后查看下面的@sterescott答案,这应该可以解决您的问题。有些软件包(例如mod_jk)/usr/sbin/apxs -q CC在configure中使用,以请求C编译器。APXS吐出来了,但是路径错误,所以这就是您不断出错的原因。
Adrian Rodriguez

1
这有所帮助,但最终解决方法来自这里:glenscott.co.uk/blog/2011/08/29/…–
Jazzy

1
命令行工具软件包ars现在可在以下位置找到:developer.apple.com/downloads
Danny D'Amours 2014年

3
在Xcode 7中,命令行工具位于“位置”选项卡上。就我而言,我通过选择Xcode 7.3.1解决了安装python的问题
Marco Pelegrini

如果有人在2017年或以后阅读此书,则应将系统日期设置为2013年2月,否则会出现错误,声称Bluetooth pkg不可信。证书过期存在一些问题。
约翰内斯·詹德

140

我安装了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目录中。我为OSX10.8.xctoolchain创建了一个符号链接,指向XcodeDefault.xctoolchain并进行了修复。现在,memcached安装脚本可以找到编译器版本并继续进行。

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

如注释中所建议,如果您在优胜美地(10.10)或小牛(10.9)上遇到此问题,则可以更新上面的symlink命令以指向该特定版本(OSX10.9.xctoolchainOSX10.10.xctoolchain)。


4
这对我有用,谢谢!我已经全新安装了OSX 10.8和最新的Xcode +命令行工具,因此这似乎不是与升级OSX有关的问题。
Earldouglas 2012年

1
@詹姆斯大点。我也重新安装了OSX 10.8。
立体声

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

这对我没有用。对我有用的是升级命令行工具(请参阅stackoverflow.com/a/19993810/130664)。
Raam Dev

2
在Mavericks上也是如此:sudo ln -s XcodeDefault.xctoolchain OSX10.9.xctoolchain
izilotti 2014年

69

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

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

$ xcode-select --install

现在,Apple希望您同意使用它们的许可,然后才能使用以下工具:

$ 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.
[...]

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


2
这对我有用;Xcode已安装(干净的Mavericks安装),但并未自动安装命令行工具。
JESii 2014年

这对我来说效果很好。我正在安装iperf3,但不断出现错误:“ c编译器无法安装可执行文件”。我使用了“ xcode-select --install”,它运行得很好。
Blairg23

这似乎可以解决优胜美地的问题。即使XCode 6现在已经预装了命令工具,并且我也可以从命令行运行clang,。/ configure失败,直到我运行xcode-select
sapi 2014年

某些系统/安全更新似乎禁用了许可协议,您必须再次执行此步骤。
马特·桑德斯

在安装El Capitan Beta之后发生。
乔尔·戴

13

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

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

当我输入which gcc时返回

/usr/bin/gcc

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

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

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

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

而且有效!

(config.log文件位于make试图在其中建立目录的目录中)


在config.log中,我看到CC ='/ usr / bin / gcc-4.2',但是我对目录执行了ls命令,所以什么也没有。这样就很清楚了。我创建了符号链接和BAM!都好。
james2doyle 2013年

1
经过大量搜索之后,这正是我需要的技巧!谢谢
HSeldon

12

我刚刚遇到了构建Apache的问题。我使用的解决方案与Mostafa相同,我必须导出2个变量:

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小牛


谢谢,这个工作在OS X上运行./configure的Apache的
艺术

5

首先使用获取gcc路径

命令:哪个gcc

输出:/ usr / bin / gcc

我遇到了同样的问题,请在下面的命令中设置gcc路径并安装

CC = / usr / bin / gcc rvm安装1.9.3

稍后,如果您看到“ Ruby是没有文档构建的 ”,则在命令下面运行

rvm docs generate-ri


也在高山脉上工作
Artur79 '19

4

对我来说,这是gcc的问题,由突出显示gcc -v。这是下降到升级的Xcode最近这个帖子说到做到sudo xcode-select -switch /Applications/Xcode.app这固定的问题。


3

将“ clang”设置为编译器配置应该对我有用:

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

2

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

PS。steroscott的回答不久前解决了我的问题……这次不是这样。

在我的情况下,rvm尝试通过自制程序使用下载的gcc。我运行了gcc的brew卸载(对我来说是gcc46),然后重新运行了ruby安装的代码(旧项目old ruby​​ v)

$ brew uninstall gcc46

$ rvm install 1.9.3

在检查需求的过程中,它为我和繁荣时期自动获取了一个新的gcc,现在一切正常。哦,请注意,从rvm命令安装gcc可能需要10到15分钟,而不会抛出任何文本,它不会冻结:)祝您好运


来自rbenv的重要信息对我来说是:对于大多数程序,llvm-gcc编译器都能正常工作。但是,低于1.9.3-p125的Ruby版本与兼容llvm-gcc。要构建旧版本的Ruby,您必须在系统上安装官方的GCC编译器。解决问题的方法:使用以下命令安装Homebrew的apple-gcc42软件包:brew tap homebrew / dupes; 酿造安装apple-gcc42
schmijos

2

我疯狂地阅读了所有页面,希望找到以下解决方案:

"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的功能:当您在其旁边进行编辑时,引号会自动更改为非法样式。
经验教训:使用适当的文本编辑器...


0

就我而言,我尝试过, xcode-select --install但是它说商店里没有。然后,受Rimian的启发,我检查了我的gcc:gcc -v然后我收到一条消息,说我没有同意。

从那时起gcc -v,我同意遵循的流程,在我同意之后,该流程对我来说很好。


0

确保您的Xcode应用程序名称中没有空格(如果保留较旧的版本,可能会发生这种情况,例如将其重命名为“ Xcode 4.app”);构建工具将在Xcode束路径中引用,并且许多脚本无法正确处理带空格的引用。


0

关于Clang iOS交叉编译器

我发现问题出在miphoneos-version-min=5.0。我已经变成了miphoneos-version-min=8.0。现在可以了。

我只想建议使用创建一个简单的test.c文件并通过在日志中写入命令来对其进行编译。


0

尝试安装Pod时,我在构建react-native应用程序时遇到了这个问题。我必须导出2个变量:

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'

0

确保Xcode.app捆绑软件的路径没有空格或奇怪的字符。我在〜/ Downloads / Last Dev Tools /文件夹中安装了Xcode,因此使用空格并将文件夹重命名为LastDevTools可以解决此问题(尽管在重置xcode-select -p之后)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.