首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >2gcc编译流程和相关参数

2gcc编译流程和相关参数

作者头像
步步为营DotNet
发布2026-06-17 09:08:56
发布2026-06-17 09:08:56
1040
举报

gcc编译流程和相关参数

image-20220214162739341
image-20220214162739341

file 文件–查看文件,如果是可执行文件,则为ELF

image-20220214163002210
image-20220214163002210

普通文件为 ASCII text

gcc参数

参数

含义

示例

I

包含头文件路径(绝对路径或相对路径)

gcc add.c -I ./include

o

目标文件

gcc add.c -o pro.out

D

直接指定宏

gcc add.c -D DEBUG

L

包含库路径

gcc main.c -I include/ -L lib/ -lCalc

l

指定库名

库名:libxxx.so 使用方式:-lxxx

c

.o文件(二进制文件)

生成.o文件

g

用于gdb调试

Wall

输出警告

lstdc++

编译cpp文件

gcc hello.cpp lstdc++ -o pro.out也可以g++ hello.cpp

E

预编译

S

汇编

**linux下 **

静态库.a 命名为:libxxx.a 对应于windows下的.lib

制作步骤:

代码语言:javascript
复制
1. 编译为.o文件
2. 将.o文件打包`ar rcs libmycalc.a file1.o file2.o`
3. 将头文件与库一起发布

查看库文件信息nm libmycalc.a

动态库.so

制作步骤:

代码语言:javascript
复制
1. 编译与位置(存放位置)无关的代码,生成.o文件(就是加上`-fPIC`参数)gcc cal.c -I ./ -c -fPIC
1. 将.o文件打包,加参数-shared `gcc -shared -o libCalc.so file1.o file2.o`
1. 将库与头文件一起发布
image-20220215204710284
image-20220215204710284

ldd 程序查看所链接的库

动态库的使用

  1. 直接将.so文件放到/lib或者/usr/lib下(做链接也可以)不推荐使用
  2. 将库路径增加到环境变量中 LD_LIBRARY_PATH 不推荐 export LD_LIBRARY_PATH=/home/lib/:$LD_LIBRARY_PATH一次设置,退出后就失效 最后的“:”后面表示不会清空之前的变量,而是增加
    • 如果要永久生效就要在.bashrc中将上面的命令写入,因为linux启动时会查看.bashrc文件
  3. 修改/etc/ld.so.conf,添加库路径在该文件中,然后执行sudo ldconfig -v-v表示显示执行过程
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • gcc编译流程和相关参数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档