编译器优化 -O1 -O2 -O3
-
O1 提供基础级别的优化
对程序做部分编译优化,对于大函数,优化编译占用稍微多的时间和相当大的内存。使用本项优化,编译器会尝试减小生成代码的尺寸,以及缩短执行时间,但并不执行需要占用大量编译时间的优化。 -
O2提供更加高级的代码优化,会占用更长的编译时间
是比O1更高级的选项,进行更多的优化。Gcc将执行几乎所有的不包含时间和空间折中的优化。当设置O2选项时,编译器并不进行循环打开()loop unrolling以及函数内联。与O1比较而言,O2优化增加了编译时间的基础上,提高了生成代码的执行效率。 -
O3提供最高级的代码优化
比O2更进一步的进行优化。在包含了O2所有的优化的基础上,又打开一些优化选项少优化->多优化: O1 -->> O2 -->> O3
gcc -static作用:表示的是编译的时候禁止调用动态库
gdb:
- gcc/g++ -g main.c 生成可调试的执行文件
- gdb -p pid 调试某个进程 pid->进程号
- gdb main.out 调试可执行文件
- gdb -c core.xxx main.out 调试core文件