社区
Linux/Unix社区
帖子详情
如何用gcc编译生成一个*.a库文件?
HashCodeWithJava
2003-01-18 06:57:33
比如我自己写了一些函数,我想把他们变成*.a库.
如何办到?
谢谢!
...全文
369
2
打赏
收藏
如何用gcc编译生成一个*.a库文件?
比如我自己写了一些函数,我想把他们变成*.a库. 如何办到? 谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
HashCodeWithJava
2003-01-18
打赏
举报
回复
谢谢了!
ari
2003-01-18
打赏
举报
回复
gcc -c filename1.c
ar -r libabc.a filename1.o
静态
库
*.a和动态
库
*.so
生成
及调用
gcc
编译
器工具一般位于/usr/bin或者/usr/local/bin目录,但它会从其它位置运行各种
编译
器支持的应用程序,这个位置可能是 /usr/lib/
gcc
-lib/目录,GNU C/C++
编译
器的各个工具和GNU专用头
文件
都保存在这里。 头
文件
,一般位于/usr/include,包含头
文件
编译
:
gcc
-I/指定路径/include hellworld.c
库
文件
,一般
linux下
gcc
编译
生成
.out,.o,.a,.so
文件
1、
文件
类型介绍 .out是可执行
文件
,相当于win上的exe; .o是
编译
中间目标
文件
,相当于win上的.obj; .a是静态
库
,多个.o练链接得到,用于静态链接; .so是共享
库
,用于动态链接,相当于win上.dll; 2、out可执行
文件
生成
main.cpp #include <stdio.h> int main() { printf("hello wor...
ARM_Linux中
GCC
编译
器的使用
什么是
GCC
:
gcc
的全称是GNU Compiler Collection,它是
一个
能够
编译
多种语言的
编译
器。最开始
gcc
是作为C语言的
编译
器(GNU C Compiler),现在除了c语言,还支持C++、java、Pascal等语言。
gcc
支持多种硬件平台。
gcc
是
一个
可移植的
编译
器,支持多种硬件平台。例如ARM、X86等等。
gcc
不仅是个本地
编译
器,它还能跨平台交叉
编译
。所谓的本地
编译
器,是指
编译
出来的程序只能够在本地环境进行运行。而
gcc
编译
出来的程序能够在其他平台进行运行。
GCC
编译
过程
1.
GCC
定义 目前 Linux 下最常用的 C 语言
编译
器是
GCC
( GNU Compiler Collection ),它是 GNU 项目中符合 ANSI C 标准的
编译
系统,能够
编译
用 C 、 C++ 和 Object C 等语言编写的程序。
GCC
不仅功能非常强大,结构也异常灵活。最值得称道的一点就是它可以通过不同的前端模块来支持各种语言,如Java 、 Fortran 、 Pas...
GCC
编译
流程、
库
文件
生成
与变量存储
库
文件
生成
与链接:
gcc
-c
生成
.o→ar -crv
生成
.a→
gcc
目标
文件
-L. -l
库
名 -o 程序名,程序独立运行但体积大。
生成
位置无关.o→
生成
.so→
gcc
目标
文件
-L. -l
库
名 -o 程序名,程序体积小但运行时依赖
库
。
gcc
调度全流程,as负责汇编,ld负责链接,ar创建静态
库
,readelfobjdump分析ELF
文件
,ldd查看动态
库
依赖。变量存储:Ubuntu(x86):地址动态分配,全局常量/代码段在低地址,堆在中间,栈在高地址。
Linux/Unix社区
23,223
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章