MinGW编译静态库—编译链接基础知识

作者:罗上文,微信:Loken1,公众号:FFmpeg弦外之音

以之前的 universe 项目为例,提取码:mku9 。请下载后放到 C:\MinGW\projects 目录,如下:

mingw-static-1-1

现在用 MinGW 的 gcc 来编译出 libstar.a 静态库给 zeus 使用,如下:

cd C:\MinGW\bin
.\gcc.exe -c -o C:\MinGW\projects\universe\earth.o C:\MinGW\projects\universe\earth.c
.\gcc.exe -c -o C:\MinGW\projects\universe\sun.o C:\MinGW\projects\universe\sun.c
.\gcc.exe -c -o C:\MinGW\projects\universe\moon.o C:\MinGW\projects\universe\moon.c
.\ar.exe -rcs C:\MinGW\projects\universe\libstar.a C:\MinGW\projects\universe\moon.o C:\MinGW\projects\universe\sun.o C:\MinGW\projects\universe\earth.o

上面这些命令,参数跟 在 《Linux环境编译静态库》,是一样的。都是用 ar 命令来打包。

mingw-static-1-2

现在用 gcc 来使用这个 静态库,如下:

.\gcc.exe -c -o C:\MinGW\projects\universe\zeus.o C:\MinGW\projects\universe\zeus.c
.\gcc.exe -o C:\MinGW\projects\universe\zeus.exe C:\MinGW\projects\universe\zeus.o C:\MinGW\projects\universe\libstar.a

mingw-static-1-3


扩展知识: MinGW 的gcc 编译出来的 libstar.a 静态库能不能给 MSVC 使用,试一下:

cd C:\MinGW\projects\universe\
cl.exe /c zeus.c
link.exe /OUT:zeus.exe zeus.obj libstar.a

mingw-static-1-4

这个其实也是跟 交叉使用 编译器 链接器一样的。因为 libstar.a 就是多个 .o 文件打包在一起而已。



感谢 NETINT(镕铭微电子) 赞助《FFmpeg原理》免费版一书的服务器费用,下面是 VPU 产品介绍

版权所属 xianwanzhiyin.net 罗上文 2024 all right reserved,powered by Gitbook该文件修订时间: 2023-05-17 11:39:54

results matching ""

    No results matching ""