(转载)
最近开始学习使用dev-c++,在学习opengl的时候发现dev-c++使用的链接库的后缀名是.a,而不是.lib。在网上搜了搜发现.a就是dev-c++所使用的静态链接库文件。
dev-c++使用了MinGW,它的编译器是gcc,gcc是一个跨平台的编译器,使用.a文件作为静态链接库文件,在windows平台下,.a文件和.lib文件都使用了COFF格式,所以在一般情况下可以直接使用,除非在编译他们的时候使用了编译器特有的机制。
对于一般的文件可以使用MinGW自带的程序reimp 将.lib转换为.a文件。
在链接是使用-l指定静态库文件进行连接。
.a和.o文件
这是linux平台的,o是链接文件,而a是库文件:
a库文件可以通过ar命令从o文件得到:ar rcs libfoo.a a.o b.o
一般a文件都放在/usr/lib目录下,我们把libfoo.a也放在此目录,以后要使用libfoo.a中的函数,比如
hello.c中引用了libfoo.a中的函数,编译如下:
gcc hello.c -Lfoo -o hello