zoukankan      html  css  js  c++  java
  • 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
    

    待续。

  • 相关阅读:
    数据仓库系列之ETL过程和ETL工具
    大数据从入门到精通
    Mysql误删表中数据与误删表的恢复方法(转)
    Vscode 小白使用介绍
    Window 通过cmd查看端口占用,杀死进程方法
    Python基础教程,Python入门教程(非常详细)
    tuxedo安装与配置入门
    Win10系统Ping端口及利用telnet命令Ping 端口
    Tuxedo 介绍
    hibernate框架的简单入门
  • 原文地址:https://www.cnblogs.com/yyehl/p/6862153.html
Copyright © 2011-2022 走看看