每当我尝试使用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文件。我不完全确定是什么问题。
答案 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