不是问题,我刚刚在互联网上搜索了这个问题的解决方案,并认为我会与 SO 的好人分享。我会用通俗易懂的语言来表述,以便新手也能理解。 :)(如果这是错误的地方,我们深表歉意——只是想提供帮助。)
几乎所有尝试使用 Eclipse C/C++ IDE 的 OS X Snow Leopard 用户都会出现此问题,但对于那些在 Leopard 中使用 Eclipse C/C++ IDE 并且无法工作的人(例如我)来说尤其烦人升级后不再使用 Eclipse。当用户构建/编译/链接其软件时会出现此问题。他们收到以下错误:
启动失败。未找到二进制文件。
此外,左侧项目窗口中的“二进制文件”分支根本不存在。
问题是:Snow Leopard 附带的 GCC 4.2(GNU 编译器集合)默认以 64 位编译二进制文件。不幸的是,Eclipse 使用的链接器不理解 64 位二进制文件;它读取 32 位二进制文件。这里可能还有其他问题,但简而言之,它们最终导致没有生成二进制文件,至少没有 Eclipse 可以读取的二进制文件,这意味着 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,请尝试按 Enter 键。如果这不起作用,请尝试输入您的主管理员帐户的密码。
其他可能的解决方案
您也许能够将构建变量输入到 Eclipse 中。我尝试过这个,但我对此还不够了解。如果您想体验一下,您可能需要的标志是 -arch i686。说实话,GCC-4.0 一直对我有用,而且我现在看不出有任何理由要切换。可能有一种方法可以改变编译器本身的默认值,但我再次对此了解不够。
希望这对您有所帮助且内容丰富。良好的编码!