Linux环境下静态库的生成和使用 (.a文件) |
您所在的位置:网站首页 › 静态文件的扩展名是什么 › Linux环境下静态库的生成和使用 (.a文件) |
linux操作系统中: 1.静态库是一些目标文件(后缀名为.o)的集合体而已。 2.静态库的后缀名是.a,对应于windows操作系统的后缀名为.lib的静态库。 3.可以使用ar命令来创建一个静态库文件。 来看一个实例,根据书中的代码简化的,先看一看可以编译成库文件的源文件中的代码: [cpp] view plain copy print ? /* test.c */ int f() { return 3; }代码非常简单,只有一句话。我们敲入如下命令: gcc –c test.c ar cr libtest.a test.o 会在当前目录下生成一个libtest.a静态库文件。-c表示只编译,不链接。再来看一看如何使用这个库。如下代码: [cpp] view plain copy print ? /* app.c */ #include extern int f(); int main() { printf(“return value is %d\n”,f()); return 0; } 敲入如下命令: gcc –c app.c gcc -o app app.o -L. –ltest 敲命令的时候要记得将libtest.a文件和生成的app.o文件放在同一个目录(即当前目录)下。这样,敲入命令后,会在当前目录下生成一个名为app的可执行文件。-o表示指定输出文件名。执行一下./app,可以看一看结果:
编译Linux使用的.a库文件
首先是需要编译成.a的源文件
hello.h: [objc] view plain copy print ? ![]() hello.c [objc] view plain copy print ?![]()
和一个在linux平台上做测试的main.c [objc] view plain copy print ?![]()
在Linux上面做测试,编译成.a文件,主要利用.o文件和ar命令 1、首先生成.o文件: gcc -c hello.c 这样源代码的目录下就会产生一个hello.o
2、利用ar命令,从.o文件中创建.a文件
ar cr libhello.a hello.o 这样就可以生成.a文件了,注意,所要生成的.a文件的名字前三位最好是lib,否则在链接的时候,就可能导致找不到这个库
3、在linux下测试使用
编译main.c,并让hello.a链接到main中 gcc main.c -L. -lhello -o main(注意这里-L后面有个.) 这样在当面目录下面就出现了可执行程序main,直接运行就是我们索要的结果了 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |