打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
gcc常用命令

目录

gcc常用命令

参考链接:Linux C编程基础 娄嘉鹏
GCC编译器(Linux gcc命令)30分钟入门教程

一、命令格式

gcc [-c|-S|-E] [-std=standard]           [-g] [-pg] [-Olevel]           [-Wwarn...] [-Wpedantic]           [-Idir...] [-Ldir...]           [-Dmacro[=defn]...] [-Umacro]           [-foption...] [-mmachine-option...]           [-o outfile] [@file] infile...

二、常用选项

选项作用示例
-E仅执行预编译gcc -E hello.c -o hello.i
-S将C代码转换为汇编gcc -S hello.i -o hello.s
-c仅执行编译操作,不进行链接操作gcc -c hello.s -o hello.o
-o指定生成的输出文件。If -o is not specified, the default is to put an executable file in a.out, the object file for source.suffix in source.o, its assembler file in source.s, a precompiled header file in source.suffix.gch, and all preprocessed C source on standard output.
-I(大写的i)指定头文件目录gcc main.c -I ../include -o main
-L指定库文件所在的目录gcc ../src/main.c -I ../include/head.h -L ../libs/ -l math
-l指定程序要链接的库gcc会在静态库名前加上前缀lib,然后追加扩展名.a得到的静态库文件名来查找静态库文件;动态库追加扩展名.so

三、创建库

  • 静态库
    1、输入gcc -c -I/头文件目录 xxx.c生成.o文件
    2、输入ar rcvs libxxx.a xxx.o生成静态库
  • 动态库
    1、输入gcc -fPIC -c -I/头文件目录 xxx.c生成.o文件

    -fPIC 选项作用于编译阶段,告诉编译器产生与位置无关代码(Position-Independent Code);这样一来,产生的代码中就没有绝对地址了,全部使用相对地址,所以代码可以被加载器加载到内存的任意位置,都可以正确的执行。这正是共享库所要求的,共享库被加载时,在内存的位置不是固定的。
    2、输入gcc -shared -o libmath.so xxx.o生成库

来源:https://www.icode9.com/content-4-462601.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
linux 静态库创建与使用
Linux静态链接(库)、动态链接(库)、可执行文件加载相关问题(创建、选项、环境变量等)
linux使用gcc编译c语言共享库步骤
在 Linux 使用 GCC 编译C语言共享库
linux静态库,动态库和硬链接,软连接
常见gcc编译选项
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服