嵌入式Linux编译器-gcc

2019-07-12 20:03发布

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