GCC 学习记录

抽空学习了Linux GCC,以前都是搞visual c++和java开发,很少关注这块,只听说过make,cmake...

 

小布老师视频:https://www.bilibili.com/video/av82377250?p=5

 

编译过程:

步骤1:预处理(处理宏)  Preprocessing(to expand macros)

步骤2:编译(源程序生成汇编语言)  Complication(from source code to assembly)

步骤3:Assembly(汇编语言 到机器码) Assembly(from assembly language to machine code)

步骤4:链接(生成可执行文件)  Linking(to create the final executable)

 

GCC编译Hello world

gcc -Wall hello.c main.c -o  hello.o

 

参数说明:

-Wall:  使用标准的警告

-o: 目标文件输出

-v  打印详细信息

-c 只编译生成目标文件,即不链接  gcc -Wall -c main.c

-L 包含链接库文件路径

-I 指定头文件路径

-l 指定链接哪些库文件

-std指定C语言标准,如-std=c99

-D 宏定义。 对应indef宏定义,预处理使用

-E 只做预处理,不编译

-g 保存debug信息

-OLEVEL  gcc编译优化等级0-3  等级越高会影响后续调试  建议平时用O0,发布时用O2

 

 

C_INCLUDE_PATH  CPLUS_INCLUDE_PATH

LIBRARY_PATH    静态库路径

LD_LIBRARY_PATH  动态库路径

创建Library

 

 

 

告警设置:

 

辅助命令:

ldd :  查看当前文件依赖哪些动态库

file :   查看当前文件的类型

其他的一些工具,没记录了,很难用上,以后用了在看吧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章