g ++编译ubuntu中的错误

时间:2012-10-10 00:33:44

标签: c++ gcc ubuntu permissions g++

每当我尝试使用g ++在ubuntu中编译时,我都会遇到以下错误

g++ test.cpp -o test
/usr/bin/ld: 1: /usr/bin/ld: /bin: Permission denied
/usr/bin/ld: 2: /usr/bin/ld: test.cpp: not found
/usr/bin/ld: 3: /usr/bin/ld: test.cpp: not found
/usr/bin/ld: 4: /usr/bin/ld: test.cpp: not found
/usr/bin/ld: 5: /usr/bin/ld: test.cpp: not found
/usr/bin/ld: 6: /usr/bin/ld: test.cpp: not found
/usr/bin/ld: 7: /usr/bin/ld: test.cpp: not found
/usr/bin/ld: 8: /usr/bin/ld: test.cpp: not found
/usr/bin/ld: 9: /usr/bin/ld: test.cpp: not found
/usr/bin/ld: 10: /usr/bin/ld: test.cpp: not found
/usr/bin/ld: 11: /usr/bin/ld: test.cpp: not found
/usr/bin/ld: 12: /usr/bin/ld: Syntax error: "(" unexpected

我已多次删除并重新安装g ++。 / usr / bin和/ usr / bin / ld的chmod是755,奇怪的是我可以运行它g++ -c test.cpp但是我无法运行.o文件。我不完全确定是什么问题。

2 个答案:

答案 0 :(得分:5)

首先,不打算运行.o文件,它意味着与其他目标文件(.o)和库(特别是C ++和C标准库)链接在一起。但是,我会从您的错误消息中猜测这可能不起作用。

从您的错误消息中,您可能会在/bin目录中运行此命令。这是不合适的。您应该在您具有写入权限的某个目录中运行它(如您的主目录)。此外,它告诉你它找不到你的test.cpp文件,你确定你已经cd加入了正确的目录吗?

答案 1 :(得分:0)

首先,g++ -c test.cpp只编译或汇编源代码,但不链接。最终输出是一个目标文件。在你的情况下是.o文件。您无法运行.o文件。

如上所述g++ -c test.cpp只是忽略链接部分,因此ld将不会被使用,这就是g++ -c test.cpp适合您的原因。

您可以切换到root用户并再次运行g++ test.cpp -o test。如果有效,您可能会在/usr/bin/usr/bin/ld

上遇到权限问题