配置:错误:C 编译器无法创建可执行文件
Posted
技术标签:
【中文标题】配置:错误:C 编译器无法创建可执行文件【英文标题】:configure: error: C compiler cannot create executables 【发布时间】:2012-05-08 15:00:08 【问题描述】:我在 *** 上检查了许多类似的问题,但还没有找到答案。
我正在尝试在 Lion OSX 上将 memcached 安装为 shown here。
这是我得到的:
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
【问题讨论】:
为了避免人们通过你的日志寻找,真正的错误是:ld: library not found for -lcrt1.10.5.o
问题是,你之前有没有在这台机器上编译过其他东西,或者这是第一次?
恐怕这个问题与编程无关,更多的是关于软件安装。如果您对编程一无所知,那么有更好的地方可以找到您正在寻找的帮助。
我不确定我是否同意“与编程无关”的判断。她的问题似乎是安装和配置了开发人员工具之一(当然,我认为它们默认安装在 Lion 上)。如果是这种情况,这将是“编程行业独有的工具”或常见问题解答中所说的任何内容。
我之所以找到这个项目,是因为我在尝试在一台我已经明确编程一段时间的机器上构建一个 ios 库时遇到了一个非常相似的问题。对我来说似乎很有效!
【参考方案1】:
您有一套旧的开发人员工具。 gcc 将其版本报告为 4.0.1。这可能是从旧版本的操作系统迁移后遗留下来的。如果您已安装 Xcode 4.3.x,则需要启动它,进入其首选项,选择 Locations 选项卡,然后单击命令行工具包旁边的“安装”。
【讨论】:
如果您正在阅读此答案,这绝对是您应该做的事情,但请注意,它不会解决您尝试构建的其他软件包的问题。因此,首先安装命令行工具,然后查看@sterescott 下面的答案,这应该可以解决您的问题。一些像 mod_jk 这样的包在 configure 中使用/usr/sbin/apxs -q CC
来请求 C 编译器。 APXS 将其吐出,但路径错误,这就是您不断收到错误的原因。
这有所帮助,但最终修复来自这里:glenscott.co.uk/blog/2011/08/29/…
命令行工具包 ars 现在可在:developer.apple.com/downloads
在 Xcode 7 中,命令行工具位于 Locations 选项卡中。就我而言,我通过选择 Xcode 7.3.1 解决了安装 python 的问题
如果有人在 2017 年或以后阅读此内容,您应该将系统日期设置回 2013 年 2 月,否则将出现错误,声称蓝牙 pkg 不受信任。证书过期的一些问题。【参考方案2】:
检查您的clang
所在位置:
which clang
它应该在/usr/bin/clang
下的某个地方。
在我以前的情况下,它来自 Miniconda,它被人为地放在命令行 PATH 上。修复这个问题,让 clang 来自 Xcode,这应该会让你前进。
【讨论】:
【参考方案3】:确保 Xcode.app 包的路径没有空格或奇怪的字符。我在 ~/Downloads/Last Dev Tools/ 文件夹中安装了 Xcode,因此使用空格并将文件夹重命名为 LastDevTools 解决了这个问题(尽管在重置 xcode-select -p 之后)
【讨论】:
【参考方案4】:当我尝试安装 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'
【讨论】:
【参考方案5】:首先使用获取gcc路径
命令:which gcc
输出:/usr/bin/gcc
我有同样的问题,请在下面的命令中设置 gcc 路径并安装
CC=/usr/bin/gcc rvm install 1.9.3
稍后如果您得到“Ruby was built without documentation”,请在命令下方运行
rvm 文档生成-ri
【讨论】:
也适用于 High Sierra【参考方案6】:关于 clang iOS 交叉编译器
我发现问题出在 miphoneos-version-min=5.0
。我已更改为 miphoneos-version-min=8.0
。现在可以了。
我只是想建议使用创建一个简单的 test.c 文件并通过在日志中写入的命令进行编译。
【讨论】:
【参考方案7】:我安装了 10.8 和带有命令行工具的 Xcode 4.4,但我仍然收到此错误。我注意到我的 config.log 中有两行相关的行,而不是重新安装 Xcode:
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
根据 cmets 的建议,如果您在 Yosemite (10.10) 或 Mavericks (10.9) 上遇到此问题,您可以更新上面的符号链接命令以指向该特定版本(OSX10.9.xctoolchain
或 OSX10.10.xctoolchain
)。
【讨论】:
这对我有用,谢谢!我全新安装了 OSX 10.8 和最新的 Xcode + 命令行工具,所以这似乎不是与升级 OSX 相关的问题。 @James 好点。我也全新安装了 OSX 10.8。 cd /Applications/Xcode.app/Contents/Developer/Toolchains;sudo ln -s XcodeDefault.xctoolchain OSX10.8.xctoolchain 这对我不起作用。对我有用的是升级我的命令行工具(见***.com/a/19993810/130664)。 在 Mavericks 上也一样:sudo ln -s XcodeDefault.xctoolchain OSX10.9.xctoolchain【参考方案8】:确保您的 Xcode 应用程序名称中没有空格(如果您保留旧版本,可能会发生这种情况 - 例如将其重命名为“Xcode 4.app”);构建工具将在 Xcode 包路径中被引用,并且许多脚本无法正确处理带有空格的引用。
【讨论】:
【参考方案9】:我疯狂地阅读了这个页面,希望找到解决方案:
"configure: error: C compiler cannot create executables"
最后没有任何效果,因为我的问题是“打字”问题,并且与 CFLAGS 有关。 在我的 .bash_profile 文件中,我有:
export ARM_ARCH="arm64”
export CFLAGS="-arch $ARM_ARCH"
如您所见 --- export ARM_ARCH="arm64" --- 最后一个引号与第一个引号不同。第一个 ( " ) 是合法的,而第二个(“)不是。 发生这种情况是因为我错误地使用了 TextEdit(我在 MacOS 下工作),这显然是一个称为 SmartQuotes 的功能:每当您在旁边编辑某些内容时,引号会自行更改为非法样式。 经验教训:使用适当的文本编辑器...
【讨论】:
【参考方案10】:如果有人来这里是因为 RVM / Ruby 正在制造问题(中间人/Grunt),我已经解决了我的问题。
PS。 steroscott 的回答不久前解决了我的问题……这次不是这样。
在我的情况下,rvm 正在尝试通过自制软件使用下载的 gcc。我运行了 gcc 的 brew uninstall(对我来说是 gcc46)并重新运行了 ruby 安装的代码(旧项目旧 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 ; brew install apple-gcc42【参考方案11】:
在我的情况下,我尝试了xcode-select --install
,但它说它在商店中不可用。然后,受到 Rimian 的启发,我检查了我的 gcc:gcc -v
,然后我收到一条消息说我不同意。
从那时起,我只是按照gcc -v
的协议流程,在我同意它对我来说很好之后。
【讨论】:
【参考方案12】:将“clang”设置为编译器配置应该对我有用:
export CC=clang
pip install --no-clean pycrypto
【讨论】:
【参考方案13】:我刚刚在构建 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 Mavericks
【讨论】:
谢谢,这在 OS X 上为 Apache 运行./configure
有效【参考方案14】:
当您看到此错误消息时,您可能在升级后尚未接受 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.
[...]
接受后,命令行工具将按预期工作。
【讨论】:
这对我有用; Xcode 已安装(干净的 Mavericks 安装),但没有自动安装命令行工具。 这对我来说效果很好。我正在安装 iperf3,但一直收到错误消息:“c 编译器无法安装可执行文件”。我使用了“xcode-select --install”,效果很好。 这似乎解决了优胜美地的问题;即使 XCode 6 现在预装了命令工具,并且我可以从命令行运行 clang,./configure 仍然失败,直到我运行 xcode-select 某些系统/安全更新似乎禁用了许可协议,您必须再次执行此步骤。 安装 El Capitan 测试版后发生。【参考方案15】:对我来说,这是 gcc 的问题,gcc -v
突出显示。最近要升级 Xcode this post 说要做 sudo xcode-select -switch /Applications/Xcode.app
解决了这个问题。
【讨论】:
【参考方案16】:我已经在 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!都很好。 经过大量搜索,这正是我需要的技巧!谢谢- ln:gcc-4.2.1:不允许操作。尝试这些步骤时出现此错误。以上是关于配置:错误:C 编译器无法创建可执行文件的主要内容,如果未能解决你的问题,请参考以下文章