LINUX

【安装依赖顺序】

mpfr-3.1.1-4.h1.x86_64.rpm

libmpc-1.0.1-3.x86_64.rpm

cpp-4.8.5-4.h5.x86_64.rpm

binutils-2.23.52.0.1-55.h12.x86_64.rpm

libgomp-4.8.5-4.h5.x86_64.rpm

libgomp-4.8.5-4.h5.x86_64.rpm

rpm -ivh --force glibc-2.17-111.h30.x86_64.rpm glibc-common-2.17-111.h30.x86_64.rpm

glibc-headers-2.17-111.h30.x86_64.rpm

glibc-devel-2.17-111.h30.x86_64.rpm

gcc-4.8.5-4.h5.x86_64.rpm

 【举例】

gcc b.c -c a.o    //gcc编译器会对源文件a.c进行预处理, 编译, 不进行链接, 最后生成的是object file (目标文件), 此处为b.o, 这属于编译过程的中间阶段, 再经过链接, 才能最终生成可执行文件.

gcc b.c         //gcc编译器会对源文件min.c进行预处理, 编译, 以及链接, 最后生成可执行文件, 默认为a.out

gcc -Wall      //编译时输出告警信息

gcc -g        //1. 创建符号表,符号表包含了程序中使用的变量名称的列表。2. 关闭所有的优化机制,以便程序执行过程中严格按照原来的C代码进行。---------对于需要gdb定位的代码非常关键;

【-D选项】

/*编译宏*/

在源代码里面如果这样是定义的:
#ifdef   MACRONAME
//可选代码
#endif

那在makefile里面
gcc   -D   MACRONAME=MACRODEF
或者
gcc   -D   MACRONAME 

此时就可以执行到【//可选代码】部分

https://blog.csdn.net/qq_32693119/article/details/81092730

原文地址:https://www.cnblogs.com/wangqiwen-jer/p/11082773.html