gcc编译器的使用


gcc编译器的使用

  • 一个 C/C++文件要经过预处理(preprocessing)、编译(compilation)、汇
    编(assembly)和链接(linking)等 4 步才能变成可执行文件。
  • 编译过程为:
    在这里插入图片描述

gcc使用实例:

gcc hello.c // 输出一个名为 a.out 的可执行程序,然后可以执行./a.out
gcc -o hello hello.c // 输出名为 hello 的可执行程序,然后可以执行./hello
gcc -c -o hello.o hello.c // 先编译(不链接)
gcc -o hello hello.o // 再链接
  • 执行 gcc -o hello hello.c -v的全部过程,上面有图
gcc -E -o hello.i hello.c    //预处理 hello.c 成 hello.i 文件
gcc -S -o hello.s hello.i    //编译 hello.i 成 hello.s 文件
gcc -c -o hello.o hello.s    //汇编 hello.s 成 hello.o 文件
gcc -o hello hello.o         //把汇编好的 .o文件链接可执行文件 hello

制作静态库( .a 后缀)

gcc -c -o main.o main.c
gcc -c -o sub.o sub.c
ar crs libsub.a sub.o sub2.o sub3.o(可以使用多个.o 生成静态库)
gcc -o test main.o libsub.a (如果.a 不在当前目录下,需要指定它的绝对或相对路径)
//运行:
./test

制作动态库( .so 后缀) :注意链接和运行是两个不同的概念

gcc -c -o main.o main.c
gcc -c -o sub.o sub.c
gcc -shared -o libsub.so sub.o sub2.o sub3.o(可以使用多个.o 生成动态库)
//链接
//第一种: gcc -o test main.o libsub.so
//第二种:
gcc -o test main.o -lsub -L /libsub.so/所在目录/
//解析:-l 指定库文件的名称sub(libsub.so)----->省略了lib和.so
//      -L 库文件(libsub.so)所在的路径
//运行:
//第一种:运行时libsub.so库需要放在系统默认的环境变量里面去(lib...)
//第二种:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./(当前库路径)
//然后就可运行test了
  • 如果要编译很多个文件,这时就需要用到Makefile的使用了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值