20165232 第二周学习总结
第一章主要介绍了计算机在运行文件的时候发生的操作,比较重要的知识点是程序翻译的过程,分为四部分:
用cpp将.c源程序翻译成.i文本文件;
用ccl翻译成.s文本(c-汇编);
用as翻译成.o二进制文件;
用ld翻译成可执行的二进制程序。
总结:gcc -(Esc) hello.c ----- hello (iso)制定库文件所在的目录名
1、E:仅执行编译预处理
2、s:将C转化为汇编语言
3、c:执行编译操作,不执行链接操作
4、o:制定生成的输出文件
5、I:制定头文件目录
6、l:制定程序链接的库
7、L:
预处理:gcc –E hello.c –o hello.i;gcc –E调用cpp
编 译:gcc –S hello.i –o hello.s;gcc –S调用ccl
汇 编:gcc –c hello.s –o hello.o;gcc -c 调用as
链 接:gcc hello.o –o hello ;gcc -o 调用ld
以上四步可以直接合为一步: gcc hello.c -o hello
同时编译几个文件
1、一起编译
gcc test_a.c test_b.c -o test 或者 gcc *.c -o test
2、分别编译
gcc -c test_a.c
gcc -c test_b.c
gcc -o test_a.o test_b.o test
一个项目的目录参数
-src
-include
-bin
-libs
-Readme.md
-makefile
静态库与动态库