问题描述
我是Linux的新手。我使用的是Ubuntu 11.04,不知道如何编译和执行C++程序。我需要知道在Linux中编译和执行C++程序的命令。
最佳解决方案
要编译c ++代码,请使用:
g++ foo.c
示例中的foo.c是要编译的程序的名称。
这将在名为a.out
的同一目录中生成一个可执行文件,您可以在终端中输入以下命令来运行该文件:
./a.out
g ++应该已经在你的$ PATH中了,所以你不需要明确地调用/usr/bin/g++
,但是你可以在任何情况下使用后者。
foo.c
应该与您运行命令的目录位于同一目录中。如果有任何疑问,您可以通过键入ls foo.c
或head foo.c
确保您在同一目录中(如果您需要验证您使用的是正确的foo
。)
正如@ con-f-use所述,编译器通常会使该文件可执行,但如果没有,您可以自己执行此操作(因此执行命令./a.out
或等效文件将起作用):
chmod +x ./a.out
要指定已编译输出文件的名称,请使用您的g ++命令将其命名为a.out, use
-o`。例如。,
g++ -o output foo.c
这会将foo.c
编译为名为output
的二进制文件,您可以键入./output
来运行已编译的代码。
次佳解决方案
我在这里做了两个假设:
-
您已经准备好构建C++源文件/程序
-
您已在计算机上设置了构建系统
在Ubuntu或任何其他Linux发行版上编译C++程序的最简单方法是键入
g++ main.cpp -o main
-
g ++是GCC的C++组件的调用,它是C /C++的实际编译器和Linux平台上的其他语言的整个主机。它是目前唯一能够编译Linux内核的编译器。
-
main.cpp是您要编译的c ++源文件。
-
-o main指定编译源时要创建的输出文件的名称。如果您愿意,可以反转目标源文件和目标输出文件,因此
g++ -o main main.cpp
同样有效。 -
要执行该程序,您需要在终端中执行./main。
上述命令假定您已经位于源文件的位置,但源文件和目标输出文件也可以指定为目录。例如
g++ ~/Desktop/main.cpp -o ~/Projects/main
将编译位于桌面上的C++源文件,并将可执行二进制文件放在主目录中的Projects
文件夹中。要运行此可执行文件,请运行./Projects/main
。
第三种解决方案
这就是我喜欢用g ++编译的方式。
$g++ -W -Wall -pedantic -o programName -p sourceFile.cpp
-W: Print extra warning messages for some problems.
-Wall: Enable all the warnings about questionable code
-pedantic: Show all the warnings demanded by strict ISO compliance
-o programName: place the executable output in programName sourceFile.cpp: the
name of our source code file
第四种方案
g++ filename.cpp
例如:
g++ One.cpp
这将生成名为(例如)的输出文件:
a.out
如果你创建另一个程序并编译它(例如):
g++ Two.cpp
这也将生成名为(例如)的输出文件:
a.out
这意味着如果执行该操作,您只能获得最后编译的程序的输出。为了避免这种用途(例如)
g++ One.cpp -o One
现在,您的输出文件将是:
One
现在,您可以使用您指定的名称执行该文件。