我在 Eclipse 中链接和/或运行简单程序时遇到问题。我将尝试首先完整描述我使用的设置,以帮助识别问题。请注意,这是我第一次安装和设置非 Windows 操作系统,尽管我在校园里使用过某个版本的 Ubuntu。
昨天我在 VMware Player 上创建了一个新的 Ubuntu 虚拟机。我向它提供了 32 位系统 Ubuntu 11.10 安装光盘的映像文件路径,名为“ubuntu-11.10-desktop-i386.iso”。
然后机器自行安装了 Ubuntu 11.10。之后我登录(使用 Unity-2D 选项)并进行了一些基本设置:
首先,我选择安装 Ubuntu 自动提供的所有更新(大约 400 个)。我让更新在后台下载并安装,完成后,我重新启动(按照要求)。
其次,我运行了“sudo apt-get install python-software-properties”。我不记得为什么,但这可能是在 Ubuntu 上安装 Java 的指南的一部分。
然后我尝试了“sudo add-apt-repository ppa:ferramroberto/java”,如果我没记错的话,它没有起作用。
然后,bash 历史记录显示运行了“sudo apt-get update”,我记得它似乎成功安装了一些东西。同样,该行源自一些在 Ubuntu 上安装 Java 的教程或指南。
然后我继续使用“sudo apt-get install sun-java6-jdk sun-java6-plugin”安装 Java 版本 6 JRE。这个命令成功了,让我很开心(因为后面的“java -version”显示 Java 已经安装)——终于找到了正确的命令!
然后我将文件“eclipse-cpp-indigo-SR2-incubation-linux-gtk.tar.gz”解压到我的 /usr/Apps 文件夹中,然后将其移动到 /opt/ 文件夹(我不记得它在哪里)。
最后,我使用命令“apt-get install g++”安装了 g++。一切看起来都很好。
然后我创建了一个简单的 HelloWorld 程序 - 我创建了一个名为“try1.cpp”的源文件并写入以下代码:
#include <cstdio>
int main(int argc, char* argv[])
{
printf("Hello World1!/n");
return 0;
}
当我通过右键单击项目并选择“构建项目”来构建项目时,我得到以下输入:
**** Build of configuration Debug for project OS.Ex4 ****
make all
Building file: ../try1.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"try1.d" -MT"try1.d" -o "try1.o" "../try1.cpp"
Finished building: ../try1.cpp
Building target: OS.Ex4
Invoking: GCC C++ Linker
g++ -o "OS.Ex4" ./try1.o
Finished building target: OS.Ex4
**** Build Finished ****
我可以看到 try.o 对象是在项目的“调试”文件夹中创建的,并且我还可以看到没有创建二进制文件 - 通过构建日志和“调试”文件夹中的缺少都可以发现。
这就是为什么当我尝试运行我的项目时收到下一个错误消息“启动失败。未找到二进制文件。”这并不奇怪。
那么,我做错了什么?我有 g++ 编译器,它正确地将代码编译成目标文件,那么为什么没有链接到二进制文件呢?我有一个完整的主函数……
我将非常感激您帮助我解决这一问题。
谢谢,
谢伊
答案1
正如 cqcallaw 在他的第二条评论中所建议的那样,使用安装sudo apt-get install eclipse
而不是手动下载和解压压缩包,解决了 eclipse 表现出的奇怪行为。
答案2
apt-get update
做不是安装东西,它只会更新你的包索引g++ -o "OS.Ex4" ./try1.o
。在您的构建文件夹中查找文件OS.Ext4
。要在 eclipse 中运行此文件,您需要设置运行配置以运行此文件。- 您可能应该使用适用于 Java 的官方 openjdk。
- eclipse 网站不提供“安装程序”。您只需下载并解压存档,然后从该目录运行它即可。
- 通过手动运行 make 并自己执行 g++ 作业来验证您的链接器是否正常工作。
答案3
我看到你的问题已经解决了,但如果其他人偶然发现这个答案,还有另一种解决方案:
不要在项目名称中使用点;不要使用 OS.Ex4,而要使用 OS_Ex4 或类似的名称。Eclipse 似乎对项目名称中的点存在问题。