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

目录
相关文章
|
编译器 Linux C语言
MinGW编译动态库
MinGW编译动态库
585 0
|
XML 并行计算 Linux
MSVC编译静态库
MSVC编译静态库
349 0
|
Linux C++ Windows
MSVC编译动态库
MSVC编译动态库
367 0
|
存储 Cloud Native Linux
CMake学习之静态库动态库
CMake学习之静态库动态库
|
C语言 编译器 vr&ar
GCC 编译使用动态链接库和静态链接库
1 库的分类 根据链接时期的不同,库又有静态库和动态库之分。 静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行。 有别于静态库,动态库的链接是在程序执行的时候被链接的。
1341 0
|
开发工具 Android开发 git
Cygwin下编译自己的OpenASURF共享库
Cygwin下编译自己的OpenASURF共享库
143 0
|
关系型数据库 MySQL C语言
GCC同时使用静态库和动态库链接
一 在应用程序需要连接外部库的情况下,linux默认对库的连接是使用动态库,在找不到动态库的情况下再选择静态库。使用方式为: gcc test.cpp -L. -ltestlib 如果当前目录有两个库libtestlib.so libtestlib.a 则肯定是连接libtestlib.so。
1257 0
|
9月前
|
自然语言处理
CMake基础(3)静态库
CMake基础(3)静态库
94 1
|
9月前
CMake基础(4)动态库
CMake基础(4)动态库
90 1

热门文章

最新文章