【问题标题】:"Launch failed. Binary not found" error for C in Eclipse 4.3.0 on OS X 10.9.2OS X 10.9.2 上 Eclipse 4.3.0 中 C 的“启动失败。找不到二进制文件”错误
【发布时间】:2014-04-26 16:01:06
【问题描述】:

从今天早些时候开始,我就无法在 Eclipse 中编译任何 C 程序,因为它不会在我构建项目时创建必要的二进制文件,实际上它根本不会创建二进制文件夹。我已经尝试了我在这里看到的所有东西来尝试修复它,但它只会变得更糟。以下是我迄今为止尝试过的方法和结果:

来自"Launch Failed. Binary Not Found." Snow Leopard and Eclipse C/C++ IDE issue,在终端:

cd /usr/bin
sudo rm cc gcc c++ g++
sudo ln -s gcc-4.0 cc
sudo ln -s gcc-4.0 gcc
sudo ln -s c++-4.0 c++
sudo ln -s g++-4.0 g++

这应该将路径从 64 位 4.2 更改为 32 位 GCC 4.0。然而,在这样做之后,我遇到了一个大问题:我不再有任何类型的 GCC,当我调用

时就证明了这一点
gcc -v

在终端中,它返回:

-bash: gcc: command not found

为了解决问题,我从 Xcode 重新下载了命令行工具并重新安装了它们,Xcode 承认它们确实已安装。尽管如此,调用 gcc -v 仍然返回 -bash: gcc: command not found。重复此过程后,我得到了相同的结果,这使我看起来好像根本无法安装/找到 c 编译器!似乎以前的 C 项目的二进制文件在一切正常时工作的二进制文件在这样做之后消失了。

我也试过了:

  1. 转到项目 > 属性 > C/C++ 构建 > 设置 > 二进制解析器:并确保选择了 Mach-O 64 解析器。

  2. 在 MacOS X C Linker 和 GCC C Compiler 的 Miscellaneous 部分中编辑标志文本框以保存“-arch i686”

这些都不起作用...

我现在不知所措,真的卡住了。如果有人可以提供帮助,将不胜感激。

谢谢!

【问题讨论】:

标签: c eclipse macos gcc binaries


【解决方案1】:

第一件事:您是否阅读/尝试过有关 Ctrl-click 以选择“Build Project”的链接问题的最受好评的答案?

我不能真正谈论您对 Eclipse 的问题,因为我不使用它,但我怀疑您此时可能已经搞砸了您的 OS X 安装。不幸的是,您使用的建议可能对 SnowLeopard 时间框架有所帮助,但很可能不再有用。我不确定确切是什么时候发生的,但是 GCC 4.0 不再随 OS X 或 Xcode 一起提供,而且它在 10.9.2 时肯定已经消失了。它不会再通过 Xcode 或“安装命令行工具”选项安装,所以如果你真的需要那个特定版本的编译器,你将不得不自己构建和安装它。

默认情况下,在最近的 OS X 安装中,/usr/bin 中的编译器可执行文件是有效调用 xcrun 以确定 Xcode 当前版本的位置的存根。默认情况下,/usr/bin/gcc 指向您当前安装的 Xcode 版本附带的 clang 的任何版本。

我不确定如何在删除这些存根后恢复它们,但我会先重新安装最新的 Xcode,然后再安装命令行工具,看看是否能让你回到至少拥有这些存根。

除此之外,我会寻找另一种方法来解决您的 Eclipse 问题。 Clang 当然能够生成 32 位二进制文​​件。我想不出你想要使用 GCC 4.0 而不是 clang 的充分理由。

【讨论】:

  • 当你说我可能搞砸了我的安装,你的意思是我可能不得不重新安装 OS X 10.9.2?您是否还说 GCC 不再随 10.9.2 和 Xcode 5.1 中的命令行工具一起安装?抱歉,我对这个很陌生,所以很迷茫
  • 此命令sudo rm cc gcc c++ g++ 将删除存在的存根可执行文件。我希望重新安装命令行工具足以让它们恢复正常,但我不确定。
  • 不幸的是,我尝试重新安装命令行工具甚至所有 Xcode 本身,但没有成功。我一直在读到苹果可能已经抛弃了 gcc 以支持 clang,但我不确定。昨天我能够在 Eclipse 中编译一个程序,但不确定如何将其设置为所有 C 程序的默认编译器...
  • 哦,GCC 肯定从最近的 OSX 开发人员工具中消失了,但是当您调用命令 gcccc 只是一个指向 clang 的符号链接)时,执行 clang 的存根很少,因此更少东西坏了。
  • 有趣!不幸的是,无论我做什么,似乎都没有出现与 clang 的链接,因为每当我调用“gcc”时,我都会收到一条错误消息,说没有“gcc”这样的命令,但我会尝试弄清楚如何修复这很快!谢谢!
猜你喜欢
  • 2011-11-20
  • 2015-01-21
  • 2021-09-02
  • 2016-06-05
  • 2015-11-13
  • 2014-04-21
  • 2017-11-16
  • 1970-01-01
  • 2012-03-13
相关资源
最近更新 更多