C语言 gcc

GNU编译套件(GNU Compiler Collection),GPL许可发行的自由软件.大多数Unix操作系统采纳为标准编译器,同时也适用于Win

gcc -E 得.i 调用cpp
预处理(头文件展开,宏替换)

gcc -S 得.s 调用gcc本身
汇编语言

gcc -c 得到.o 调用as
编译成二进制文件

gcc -o得到.o 调用ld(链接libc)
这一步是链接

gcc后用file查看

gcc参数描述
-I编译时所包含的文件路径(其实改c文件中include的路径也行)
-L包含库的路径
-l指定库名,比如xx.soxx.a
-o指定生成的文件名
-D相当于defn,指定宏编译
-ggdb模式,可以调试
-lstdc++编译c++代码,一般使用g++
Wall显示更多的警告
-O优化等级(1,2,3),就是内联函数
-E头文件展开,宏替换
-S编译成汇编

编译C

例子:
假设有以下的文件

|-- fn
|   `-- add.c
|-- h
|   `-- head.h
`-- test.c

test.c文件内容

#include "head.h"
#define DEBUG 0 //为了下面写宏的展示
int main(void)
{
        int a =1, b = 2;
        int c;//使用-Wall参数会警告该参数没有初始化
#ifdef DEBUG  //如果定义了DEBUG则会执行以下的
        printf("hello C\n");
#endif
        printf("%d\n",add(a,b));
        return 0;
}

add.c 内容

int add(int a,int b){
        return a+b;
}

head.h内容


#include <stdio.h>
extern int add(int a,int b);

使用以下命令进行编译

claroja@claroja:~/gcc$ gcc test.c ./fn/add.c -I ./h -Wall -o test
test.c: In function ‘main’:
test.c:6:6: warning: unused variable ‘c’ [-Wunused-variable]
  int c;

1.test.c和fn目录下add.c一起编译(因为test.c调用了add.c,注意add.c要加路径)
2.-I参数指明了头文件的路径

编译C++

#include <iostream>
using namespace std;
int main(){
        cout << "Hello C++" << endl;
        return 0;
}

g++ test.cpp -o testcpp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值