我的工作,就是一个大杂烩,什么都得学点。最近在不同的linux 平台下编译C,顺便抽个空深入学习一下gcc。
什么是gcc:来自维基百科。关键字:跨平台,编译器,多种语言支持。GNU系統的官方編譯器(包括GNU/Linux家族)
GCC(GNU Compiler Collection,GNU编译器套裝),是一套由GNU开发的编程語言编译器。它是一套以GPL及LGPL許可證所發行的自由軟體,也是GNU計畫的关键部分,亦是自由的类Unix及蘋果電腦Mac OS X 操作系統的标准编译器。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。
GCC原名為GNU C語言編譯器(GNU C Compiler),因為它原本只能處理C語言。GCC很快地擴展,變得可處理C++。之後也變得可處理Fortran、Pascal、Objective-C、Java、Ada,以及Go與其他語言。
补充个GPL和LGPLlicense的知识点:
遇到的命令:
-Idir把dir加入到搜索头文件的路径列表中。
如 CC_INCLUDES = -I./src
-c
只激活预处理,编译,和汇编,也就是他只把程序做成obj文件
-o
制定目标名称,缺省的时候,gcc 编译出来的文件是a.out。-o $(INTERP)/commons_net.o src/commons_net.c
-O
-O1尝试优化编译时间和可执行文件大小。
-s去除可执行文件中的符号表和重定位信息。用于减小可执行文件的大小
-shared 参数使其生成是动态库而不是普通执行程序