今天学习了嵌入式Linux编译器-gcc,包括编译器的介绍,编译选项,动态库与静态库的制作、优缺点。
编译器的编译过程有预处理、编译、汇编、链接。预处理器要做三件事:头文件展开,宏替换,条件编译。
gcc-E:只进行预处理。
gcc-c:到编译阶段停止。
gcc-s:到汇编阶段停止。
汇编文件的后缀是s。
gcc hello.c -o:给可执行文件重起名字。
<>搜素路径是系统的头文件目录。“”先在所在目录的当前目录找,找不到到系统的头文件目录寻找,还找不到就会报错。
此外,还介绍了静态库与动态库的不同点与优缺点。静态库又叫共享库,后缀是.a是在执行程序之前就已经加入到执行代码中,成为执行程序的一部分来执行。动态库的后缀是.so,是在执行程序启动时加载到执行代码中。静态库执行程序的速度快,动态库慢。静态库编译速度慢,动态库快。静态库可执行文件大,占用内存多,动态库占用内存小。静态库升级繁琐,动态库简单。静态库容易部署,动态库难部署。
最后还讲了动态库与静态库的制作与使用。