我正在尝试从macOS上的终端运行程序。我运行此:
sudo g++ main.cpp
但是它只是“跳过”命令而不会生成程序,就像这样
101:nrprim mac$ sudo g++ main.cpp
101:nrprim mac$
这是代码:
#include <iostream>
using namespace std;
bool divizibil(int n, int i){
if (n%i==0) return 1; else return 0;
}
int numarDivizori(int n){
int i, c=0;
for (i=1; i<=n; i++)
if (divizibil(n,i)) c++;
return c;
}
void prim(int n){
int c=0;
c=numarDivizori(n);
if (c>2) cout<<"Numarul nu e prim"; else
cout<<"Numarul e prim\n";
}
int main() {
int n;
cout<<"n=";
cin>>n;
prim(n);
return 0;
}
我希望它将输出
n =
然后等待输入
答案 0 :(得分:3)
它确实生成了程序,您应该在同一目录中将其视为a.out
。如果您想使用其他名称,请使用-o
选项。您可以通过简单地运行此a.out
或命名的可执行文件来运行程序。
c++ src.cpp -o myoutput
顺便说一句,我认为您不需要sudo
。
答案 1 :(得分:2)
G ++ 编译您的代码,这与执行您的代码不同。如果在终端中键入 ls ,您应该会看到新文件,该文件是G ++通过编译源文件创建的。如果运行那个文件,则应该看到程序已执行。
编译正在获取您的源代码,并且基本上将其从一种语言翻译成另一种语言。在这种情况下,G ++会将您的代码从C ++编译为机器可以理解的二进制语言。编译后,结果将保存到文件中。该文件通常是可执行文件,您可以通过在终端中键入其名称来运行。例如,如果可执行文件是 a ,则您键入 ./ a ( ./ 会告诉终端文件位于当前目录)。
编辑:而且,正如其他人所说,您可能不应该将sudo用于此类操作,因为它很可能不是必需的,而且很危险。
答案 2 :(得分:1)
您可以像这样在一行中运行它:
g++ file cpp && ./a.out
或在运行后删除a.out
:
g++ file.cpp && ./a.out && rm a.out
g++ file.cpp
编译,链接并创建可执行文件a.out
。要运行a.out
,您只需输入./a.out
。第二行中的rm a.out
将删除a.out
。 &&
表示前一个命令是否成功,继续下一个。
多一个注释编译时不需要sudo