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 文件打包在一起而已

目录
相关文章
|
存储 Cloud Native Linux
CMake学习之静态库动态库
CMake学习之静态库动态库
|
编译器 C++
使用64位的编译工具进行编译
本文记录了使用64位的编译工具进行编译的过程
|
编译器 C语言 Windows
Qt 使用MinGW编译器调用MinGW编译生成的dll
Qt 使用MinGW编译器调用MinGW编译生成的dll
361 0
|
安全 Linux 编译器
【Linux编译器gcc/g++】带你了解代码是如何变成可执行程序的!
【Linux编译器gcc/g++】带你了解代码是如何变成可执行程序的!
|
编译器 Linux C语言
MinGW编译动态库
MinGW编译动态库
573 0
|
XML 并行计算 Linux
MSVC编译静态库
MSVC编译静态库
344 0
|
Linux C++ Windows
MSVC编译动态库
MSVC编译动态库
357 0
|
Shell C语言 C++
MSYS2编译C/C++程序
MSYS2编译C/C++程序
877 0
|
编译器 C语言 C++
用msys2与msvc编译FFmpeg
本文讲解如何使用 msys2 + msvc 来编译 FFmpeg ,msys2 的安装请看 《MSYS2介绍》。
334 0
|
Linux
MSVC编译多个C程序文件
MSVC编译多个C程序文件
171 0