Linux gcc指令

gcc -c xxx.c

生成同名文件,只编译,不链接为可执行文件,生成后缀为 .o 的目标文件。通常用于编译不包含主程序的子程序文件。

gcc -o XXX

XXX为生成文件名,(据说同时这个名称不能和源文件同名,但我实验是可以同名的)。如果不给出这个选项,gcc就给出默认的可执行文件 a.out 。`
在这里插入图片描述

gcc XXX.c

XXX.c中要求有main()且无外部文件引用,即不能进行自动链接。但可以将外部文件放于其后同时编译gcc XXX.c YYY.c生成可执行文件
eg:

int sum(int *a, int n);
int array[2] = {1, 2};int main() 
{
    int val = sum(array, 2);
    return val;
}
int sum(int *a, int n)
{
    int i, s = 0;
    
    for (i = 0; i < n; i++) { 
        s += a[i];
    }
    return s;
}        

编译:

root@lsy-VirtualBox:/mnt/Wshare/chap7_code# gcc -o main main.c
/tmp/ccUYJtKb.o: In function `main':
main.c:(.text+0x13): undefined reference to `sum'
collect2: error: ld returned 1 exit status
root@lsy-VirtualBox:/mnt/Wshare/chap7_code# gcc -o sum sum.c
/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
gcc -E

预处理,生成.i的目标文件

gcc -S

直到汇编完成,生成.s目标文件

gcc -Wall

使gcc产生尽可能多的产生警告信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值