gcc 编译C语言最全命令

gcc 编译命令

最简单的编译命令是:
    gcc main.c
默认生成的可执行文件是 a.out

如果需要指定输出文件,则需要使用如下的命令:
    gcc main.c – o main

使用-Wall 选项可以输出所有的警告信息:
    gcc -Wall main.c -o main

输出 C 源码的预处理结果, 使用-E 选项,默认是输出控制台,可以将其
重定向到文件保存:
     gcc -E main.c > main.i

如果只想输出汇编代码而非二进制代码,使用-S :
    gcc -S  main.c

使用-C(大写) 选项只生成 C 程序对应的目标文件,但是不进行链接:
    gcc -C main.c

输出所有的中间文件, 使用-save-temps 选项:
    gcc -save-temps main.c

共享库进行链接,应使用-l 选项再加上库程序的名字,例如,程序引用了 math 库中的 pow 函数:
   gcc -Wall main.c -o main – lm

编译生成共享库时,为了保证所生成的库可以被加载到合法的任意地址,需
要使用-fPIC 选项,例如如下的命令生成一个名为 test.so 的共享库:
    gcc -c -Wall -Werror -fPIC test.c
    gcc -shared -o test.so test.o

如果想查看编译器是怎么编译源程序的,以及每一步所使用的命令是什么,
则应该使用-V 选项:
    gcc -Wall -v main.c -o main

使用-ansi 可以指定编译器编译源码时遵循的语言标准,例如如下代码按照 ISO C89 对源码进行编译:
    gcc -Wall -ansi main.c -o main

有些时候警告中往往预示着一些潜在的错误,因此部分项目在编译时要求将警告当做错误看到, 使用-Werror :
    gcc -Wall -Werror main.c -o main

经过优化的代码调试时可能会出现找不到声明的变量、控制流程发生变化、有些语句被直接跳过等现象。总而言之,不可能对编译之后的代码进行调试。为了让编译器生成额外的信息以利于程序的调试(例如使用 gdb),使用  -g 
    gcc -Wall -Werror – g main.c -o main

使用-O0 选项可以禁用所有编译器优化,使用-O1、-O2 和-O3 逐步打开更多的优化选项。-Og 则在保证调试工作的同时完成了少量的优化。

如果有一些宏需要在编译时代入, 使用-D 选项,例如如下的代码

#include<stdio.h>
int main(void)
{
 #ifdef MY_MACRO
    printf("\n Macro defined \n");
 #endif
 char c = -10;
// Print the string
 printf("\n The Geek Stuff [%d]\n", c);
 return 0;
}

使用如下的命令编译:
    gcc -Wall -DMY_MACRO main.c -o main
则会打印输出相应的语句。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值