这并不是一个问题,我只是在网上搜索了很久才找到了解决这个问题的方法,并想与 SO 社区分享。我会用简单易懂的语言来表述,以方便新手理解。(如果我放错地方了,请见谅。)
这个问题几乎发生在任何试图使用 Eclipse C/C++ IDE 的 OS X Snow Leopard 用户身上,但对那些在 Leopard 使用 Eclipse C/C++ IDE 并在升级后无法继续使用 Eclipse 的人(例如我)尤其恼人。这个问题出现在用户尝试构建/编译/链接他们的软件时。他们会得到以下错误:
Launch Failed. Binary Not Found.
此外,左侧项目窗口中的“二进制文件”分支根本不存在。
问题在于 Snow Leopard 自带的 GCC 4.2(GNU Compiler Collection)默认编译为 64 位二进制文件。不幸的是,Eclipse 使用的链接器不理解 64 位二进制文件;它只能读取 32 位二进制文件。可能还有其他问题,但总之,它们导致没有生成二进制文件,至少没有 Eclipse 能够读取的二进制文件,这就导致了错误。
一个解决方案是在制作文件时添加 -arch i686 标志,但每次手动制作文件都很麻烦。幸运的是,Snow Leopard 还带有 GCC 4.0,默认编译为 32 位二进制文件。因此,一个解决方案仅仅是将其链接为默认编译器。这就是我所做的。
解决方法:GCC 位于 /usr/bin 目录中,通常是隐藏的文件夹,因此您无法在 Finder 中看到它,除非您明确告诉系统要查看隐藏文件夹。无论如何,您想要做的是转到 /usr/bin 文件夹,并删除将 GCC 命令与 GCC 4.2 链接的路径,并添加将 GCC 命令与 GCC 4.0 链接的路径。换句话说,当您或 Eclipse 尝试访问 GCC 时,我们希望命令去到默认编译为 32 位二进制文件的编译器,以便链接器可以读取文件;我们不希望它转到编译为 64 位的编译器。
执行此操作的最佳方法是转到应用程序/实用程序,并选择名为“终端”的应用程序。会出现一个文本提示符。它应该显示类似“(计算机名称):~(用户名)$”的内容(后面有您的用户输入空格)。完成上述任务的方法是按顺序输入以下命令,并在每个单独的行后按 Enter 键。
cd /usr/bin
rm cc gcc c++ g++
ln -s gcc-4.0 cc
ln -s gcc-4.0 gcc
ln -s c++-4.0 c++
ln -s g++-4.0 g++
和我一样,您可能会收到一条错误消息,告诉您没有权限访问这些文件。如果是这样,请尝试以下命令:
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++
Sudo可能会要求你输入密码。如果你以前从未使用过sudo,请尝试只按回车键。如果不起作用,请尝试使用你主管理员帐户的密码。
其他可能的解决方法: 你可以在Eclipse中输入构建变量。我尝试过这个方法,但是我对它了解得不够。如果你想尝试一下,你可能需要的标志是-arch i686。实际上,GCC-4.0一直在为我工作,我没有理由现在改变它。也许有一种方法可以更改编译器本身的默认设置,但再次强调,我对此了解不够。
希望这对你有所帮助和启发。祝写代码愉快!