5k1*_*k17 23 c++ eclipse macos eclipse-cdt osx-lion
我很困扰,因为这不应该让我头疼.我已经下载了最新的Eclipse Indigo以及适用于MAC OS X 10.7.1的所有 CDT C++插件
在安装上述CDT插件后重新启动时,我开发了一个简单的"hello world"c ++应用程序,并尝试运行该应用程序,"启动失败.未找到二进制文件." 错误信息.我已阅读多个修复程序,但没有一个有效.我尝试将-arch i386标志添加到链接器和编译器命令,但仍然没有运气.
有没有人成功地在10.7.1上运行Eclipse C++ ?????? 这让我大吃一惊.我可以简单地在VIM中编写相同的程序,并通过终端编译得很好并执行得很好.ECLIPSE不想玩.
我将深深感激任何可以提供帮助的人!!!!!
编辑:编译器输出
**** Build of configuration Debug for project HelloWorld ****
make all Building file: ../main.cpp
Invoking: GCC C++ Compiler g++ -I/Developer/SDKs/MacOSX10.6.sdk/usr/include -O0 -g3 -Wall -c -fmessage-length=0 -arch i386 -MMD -MP -MF"main.d" -MT"main.d" -o "main.o" "../main.cpp"
Finished building: ../main.cpp
Building target: libHelloWorld
Invoking: MacOS X C++ Linker g++ -arch i386 -dynamiclib -o "libHelloWorld" ./main.o
Finished building target: libHelloWorld
**** Build Finished ****
Run Code Online (Sandbox Code Playgroud)
Nat*_*ate 33
对于那些刚接触编程/ eclipse/IDE并且得到相同错误但上面的解决方案不起作用的人,我解决了我的"启动失败.未找到二进制文件".执行以下操作时出错:在尝试运行或调试之前,只需确保构建项目("Project">"Build All").当我点击调试或运行时,我认为IDE会进行构建,但事实并非如此(显然,回想起来).新手的经验教训.构建完成后,您应该在项目的根目录下看到"Binaries"和"Debug"文件夹.
我使用OS X 10.7.3,如果它很重要,虽然我认为我犯的错误是基本的,任何eclipse发行版都会给出同样的错误.
ist*_*ota 33
我在运行Snow Leopard的2007 Macbook上使用Eclipse Juno和CDT.我有两个症状:
我花了几个小时在Google上搜索答案,足够长的时间来确定这两个症状是否表明在没有足够分辨率的情况下已经报告了不到十年的任何问题.这是一个问题,因为十年之后应该有足够多的输入数据来提供一个故障排除程序,它逐步引导用户消除所有可能的原因.
相反,几个小时我都读到了很多人,其中许多人已经解决了他们的特殊问题,但所有人似乎都不得不做一些与此不同的事情.
这应该不难解决.特别是在像我这样的情况下[但我不是唯一一个]当Console视图显示没有错误的Build时,用户可以将二进制文件[Eclipse奇怪地说它无法找到]复制到桌面并运行它来自Finder或bash终端会话的任何问题.
所有这些似乎都强调指向Mach0 64二进制解析器中缺少适当的指示器,这应该被设计为准确地告诉我们它没有看到它需要什么.
不可否认,对于像我这样在64位CPU上运行64位操作系统[Snow Leopard]的MacBook,这种情况更加恶化,不幸的是,制造商不得不使用32位启动内核.但是,预先警告,我已经尝试了-arch i386 g ++开关,并且将g ++重新链接到g ++ - 4.0而没有任何症状变化.
ADDENDUM ADDED 10/07/2012:
我正在添加这份清单,希望能为未来几年提出这个问题的其他许多人提供一条道路.这种方式反映了我在使用Eclipse Juno和运行Snow Leopard的Mac时所发现的必要条件:
1)转到Preferences-> C/C++ - > New CDT Project Wizard,在Preferred Toolchains下,确保所有Executable项目类型都设置为MacOSX GCC.
2)这是一个很大的问题.我能够在Project Explorer中获得一个Binaries文件夹,因此能够在构建之后运行项目,方法是使用不包含点['.']的项目名称.这是我从另一个答案中学到的,在我之前的消息后几个小时编辑.这个要求很容易被遗漏,因此这是一个常见的要求,特别是如果你是Eclipse经验但只有其他语言,因为其他语言插件的教程[例如使用PyDev或Java]经常让你在名称中创建带点的项目.如果你已经习惯了其他语言,那么在使用CDT for C/C++时就要打破它.但是,要预先警告,仅使用右键单击并重命名现有项目名称是不够的,这次不使用点.最简单的方法是删除旧项目并创建一个名称不带点的新项目.
3)有许多网站提醒您确保使用-arch i386编译器开关或将/ usr/bin/gcc和/ usr/bin/g ++的链接更改为指向gcc-4.0和g ++ - 4.0而不是gcc-4.2和g ++ - 4.2.我创建了一个bash脚本来轻松来回切换并调查是否有必要.它不是,至少不是我的Macbook.基于我在Mach-O开发人员的一个站点上读到的内容,我怀疑当前版本的Mach-0 64是双向的.哪个是好的...
4)在Project Properties中,不是Preferences,转到C/C++ Build-> Settings,在Binary Parsers下确保选中Mach-O 64 Parser.确保选中此项,而不是已弃用的Mach-O解析器.
5)此时,在构建项目之后,Project Explorer中应该有一些明显的事情:
6)项目文件夹下现在应该有一个Binaries文件夹.
7)在Binaries文件夹中,现在应该是您的可执行文件.它旁边应该有[x86_64/le],如果像我一样,你的Mac实际上是32位.现在不是进入令人困惑的话题的最佳时机,无论你的Mac是32位还是64位.如果你不知道,很多人不因为苹果确实使混乱,检查出的小应用程序,它可以从以下网址下载http://www.ahatfullofsky.comuv.com/English/Programs/SMS/SMS. HTML会告诉你什么是真相.它是免费的,但"价格"是你必须滚动浏览页面顶部的广告,反映程序员的政治倾向.
小智 10
在mac上:
确保安装了xcode.通过编写"info g ++"来测试它,你必须看到有关编译器的正确信息.
建立你的项目.
转到项目的文件夹.您应该在Debug或realize文件夹中看到一个可执行文件,具体取决于您的构建配置.如果您单击可执行文件,您应该在终端上看到结果.
返回Ecliipse,从运行/运行配置...然后浏览到您拥有可执行文件的文件夹 - 您已找到的文件夹 - 您还可以在该窗口中更改构建配置.并为每次运行自动构建.
再次运行它应该工作.
祝好运 !
您应该更改项目的设置以构建可执行文件而不是动态库:
Invoking: MacOS X C++ Linker g++ -arch i386 -dynamiclib -o "libHelloWorld" ./main.o`
转到项目属性 -> C/C++ 构建 -> 设置 -> 构建工件,然后在第一个下拉列表中选择可执行文件。