栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

g++编译C++代码的实际过程

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

g++编译C++代码的实际过程

先写个c++代码

vim test.cpp
#include
using namespace std;
int main(int argc,char **argv)
{
	cout<<"This is a cppfile!"< 

我们编译这个代码只需要一条命令

g++ test.cpp -o test

实际是经过以下四步编译的
预编译->编译->汇编->链接

1、预编译:(预处理),主要处理在源代码文件中的“#”开头的预编译指令,如宏定义,#include指令等

# -E选项指示编译器仅进行预处理
g++ -E test.cpp -o test.i

2、编译:把预处理完成的文件进行一系列分析和优化,生成相应的汇编代码文件

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

3、汇编:将汇编代码转变成二进制文件

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

4、链接:将二进制文件链接成一个可执行文件,把分散的数据和代码收集并合并成一个单一的可加载、可执行的文件,链接可以发生在代码静态编译、程序被加载时以及程序执行时。链接过程主要工作是符号解析和重定位

g++ test.o -o test
2、g++ 参数
-O[n]

一般 `-O2`即可,对代码进行优化

g++ test.cpp -O2 -o test
-l或-L
-l #在/lib和/usr/lib和/usr/local/lib依次查找库文件
g++ -lglog test.cpp

-L #自己定义位置
g++ -L/home/wfq/MyProjects -lmytest test.cpp
-I
#一般不用,在/usr/include
g++ -I/myinclude test.cpp
-W
#打印警告信息
g++ -Wall test.cpp
-std=c++11
#使用c++11标准
g++ -std=c++11 test.cpp
-o
#指定输出文件名
g++ test.cpp -o test
-D
#定义宏(DEBUG)
g++ -DDEBUG ....
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/456766.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号