MinGW编译静态库

简介: MinGW编译静态库

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

现在用 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 命令来打包。

现在用 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 的gcc 编译出来的 libstar.a 静态库能不能给 MSVC 使用,试一下:

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

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

目录
相关文章
|
7月前
|
自然语言处理
CMake基础(3)静态库
CMake基础(3)静态库
80 1
|
存储 Cloud Native Linux
CMake学习之静态库动态库
CMake学习之静态库动态库
|
存储 Linux 编译器
什么是链接库 | 动态库与静态库
什么是链接库 | 动态库与静态库
170 0
|
安全 Linux 编译器
【Linux编译器gcc/g++】带你了解代码是如何变成可执行程序的!
【Linux编译器gcc/g++】带你了解代码是如何变成可执行程序的!
|
编译器 Linux C语言
MinGW编译动态库
MinGW编译动态库
539 0
|
XML 并行计算 Linux
MSVC编译静态库
MSVC编译静态库
332 0
|
Linux C++ Windows
MSVC编译动态库
MSVC编译动态库
342 0
|
Shell C语言 C++
MSYS2编译C/C++程序
MSYS2编译C/C++程序
828 0
|
编译器 C语言 C++
用msys2与msvc编译FFmpeg
本文讲解如何使用 msys2 + msvc 来编译 FFmpeg ,msys2 的安装请看 《MSYS2介绍》。
316 0
|
Linux Shell 编译器
用msys2与mingw编译FFmpeg
用msys2与mingw编译FFmpeg
384 0