![运行由 gcc 编译的代码时出错](https://linux22.com/image/909386/%E8%BF%90%E8%A1%8C%E7%94%B1%20gcc%20%E7%BC%96%E8%AF%91%E7%9A%84%E4%BB%A3%E7%A0%81%E6%97%B6%E5%87%BA%E9%94%99.png)
所以我刚刚在我的(不那么闪亮的)新 ThinkPad 上安装了 Ubuntu 18.04,我很喜欢它,尤其是新的 GNOME 设置。
所以我想运行一些 c++ 代码。似乎 gcc 已经默认安装,所以我尝试了一个名为 test.cpp 的简单 hello world 程序
我编译它:cpp test.cpp -o test
... 运行正常,没有错误。然后我尝试运行它,但它说权限被拒绝,所以我快速做了一下,chmod u+x
它似乎至少尝试运行该程序。无论我输入和编译什么代码,它总是会出现这些错误:
./test: line 18: namespace: command not found
./test: line 22: syntax error near unexpected token `('
./test: line 22: ` typedef decltype(nullptr) nullptr_t;'
--还请注意,只有 7 行代码,但第 18 行以上却出现错误?!为什么我编译后还会出现错误?!
所以我在#askubuntu 上创建了一个新帐户,现在我在这里。
答案1
cpp
是个C 预处理器- 它不是编译器。它的输出是一个文本文件,其中包含来自您的代码编辑的任何文件的扩展宏和声明#include
。当您将其设为可执行文件并尝试运行它时,您的 shell 会尝试将此文本解释为 shell 代码 - 但失败了。
要编译你的 C++ 文件(并链接到可执行文件),你应该使用g++
:
g++ test.cpp -o test