linux下编译C++文件基本命令

linux下编译C++文件基本命令

一个C/C++源代码要变成一个可执行文件,需要经过预处理(Pre-processing)-编译(Compiling)-汇编(Assembling)-链接(Link)

基本流程为:
test.c --预处理--test.i --编译-- test.s --汇编-- test.o --链接-- test.exe

预处理

-E 选项使用g++/gcc将源代码预处理后不执行其他动作。
下面的命令将test.cpp预处理,并在标准输出中显示:

g++ -E test.cpp 

后面加上 -o 选项表示将源代码预处理后输出在指定文件中,比如test.i:

g++ -E test.cpp -o test.i

编译

-S 选项使用g++/gcc将预处理后的文件编译,翻译成汇编代码。只编译不汇编
下面的命令将会编译test.i文件,并自动在当前文件夹生成test.s文件

g++ -S test.i

若要指定其他输出名,则需 -o 指定,比如生成名为xxx.s的汇编代码文件

g++ -S test.i -o xxx.s

汇编

-c 选项将编译生成的test.s文件生成二进制目标代码
下面的命令将在当前文件夹自动生成test.o的二进制目标代码文件

g++ -c test.s 

如果要指定输出文件名,则需 -o 指定,比如生成xxx.o的二进制目标代码文件

g++ -c test.s -o xxx.o

链接

链接阶段是将相关的目标文件链接起来,形成一个整体,生成可执行文件
无选项链接
下面的命令会把二进制目标文件test.o所需的相关文件链接成一个整体,并在当前文件夹自动生成一个名为a.out的可执行文件

g++ test.o

如果要执行这个可执行文件,需要输入命令

./a.out

当然也可以指定生成的可执行文件的文件名

g++ test.o -o test.exe

单个源文件直接生成可执行文件

当然g++/gcc也可以直接把源代码直接生成可执行文件
下面的命令将test.cpp直接在当前文件夹生成a.out可执行文件,若要指定文件名,可使用 -o 选项

g++ test.cpp
g++ test.cpp -o test.exe

多个源文件直接生成可执行文件

也可以将多个源代码编译链接成一个可执行文件
下面的命令将test.cpp直接在当前文件夹生成a.out可执行文件,若要指定文件名,可使用 -o 选项

g++ test1.cpp test2.cpp 
g++ test1.cpp test2.cpp -o test.exe

一个C/C++源代码要变成一个可执行文件,需要经过预处理(Pre-processing)-编译(Compiling)-汇编(Assembling)-链接(Link)

基本流程为:
test.c --预处理--test.i --编译-- test.s --汇编-- test.o --链接-- test.exe

预处理

-E 选项使用g++/gcc将源代码预处理后不执行其他动作。
下面的命令将test.cpp预处理,并在标准输出中显示:

g++ -E test.cpp 

后面加上 -o 选项表示将源代码预处理后输出在指定文件中,比如test.i:

g++ -E test.cpp -o test.i

编译

-S 选项使用g++/gcc将预处理后的文件编译,翻译成汇编代码。只编译不汇编
下面的命令将会编译test.i文件,并自动在当前文件夹生成test.s文件

g++ -S test.i

若要指定其他输出名,则需 -o 指定,比如生成名为xxx.s的汇编代码文件

g++ -S test.i -o xxx.s

汇编

-c 选项将编译生成的test.s文件生成二进制目标代码
下面的命令将在当前文件夹自动生成test.o的二进制目标代码文件

g++ -c test.s 

如果要指定输出文件名,则需 -o 指定,比如生成xxx.o的二进制目标代码文件

g++ -c test.s -o xxx.o

链接

链接阶段是将相关的目标文件链接起来,形成一个整体,生成可执行文件
无选项链接
下面的命令会把二进制目标文件test.o所需的相关文件链接成一个整体,并在当前文件夹自动生成一个名为a.out的可执行文件

g++ test.o

如果要执行这个可执行文件,需要输入命令

./a.out

当然也可以指定生成的可执行文件的文件名

g++ test.o -o test.exe

单个源文件直接生成可执行文件

当然g++/gcc也可以直接把源代码直接生成可执行文件
下面的命令将test.cpp直接在当前文件夹生成a.out可执行文件,若要指定文件名,可使用 -o 选项

g++ test.cpp
g++ test.cpp -o test.exe

多个源文件直接生成可执行文件

也可以将多个源代码编译链接成一个可执行文件
下面的命令将test.cpp直接在当前文件夹生成a.out可执行文件,若要指定文件名,可使用 -o 选项

g++ test1.cpp test2.cpp 
g++ test1.cpp test2.cpp -o test.exe

使用C++11标准编译

如果要使用C++11版本特性,则需要使用 -std=c++11 选项

g++ -std=c++11 test.cpp -o test.exe
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值