如何在 cmd 或 bat 文件中链接 MinGW

Posted

技术标签:

【中文标题】如何在 cmd 或 bat 文件中链接 MinGW【英文标题】:How to link MinGW in cmd or bat file 【发布时间】:2021-01-18 11:27:39 【问题描述】:

MinGW v.8.1.0 我正在学习如何使用编译器,但对于某些东西,我找不到答案。 在一个简单的情况下,我只需要我可以在 CMD 中编写的代码:

gcc [list c files] -o main.exe

在 bat 文件中也是如此:

del main.exe
gcc [list c files] -o main.exe
main.exe
pause

现在我想使用#include <windows.h> 做一些事情,这意味着链接到 user32.lib。 查看gcc --h 中最接近的东西有-Xlinker <arg> Pass <arg> on to the linker。 我的假设是我的命令应该是:

gcc [list c files] -o main.exe -Xlinker [list of *.lib files]

这不起作用。我想了解如何链接到窗口的内置库以及如何链接到其他可用的库以及如何使用 bat 文件轻松实现。 感谢您的帮助!

【问题讨论】:

【参考方案1】:

如果您不提供确切的代码行,将很难具体说明。如果MinGW 安装正确,它将知道如何找到静态库。它应该包含大部分Windows 静态库(user32comctl32comdlg32ole32 等)。

gcc [list c files] -o main.exe -luser32 -lcomctl32 -comdlg32 [any other library here]

顺便说一下,命名约定如下:如果静态库文件名是libuser32.a,则链接标志应该是-luser32.a

【讨论】:

以上是关于如何在 cmd 或 bat 文件中链接 MinGW的主要内容,如果未能解决你的问题,请参考以下文章

写个bat 脚本 打开cmd 并指向某个目录

如何将“=”作为参数的一部分从 Windows 的 bit-bash 传递给 .cmd 或 .bat 文件

如何使用bat批处理或cmd,:将一个文件复制为“多个副本“(增量备份,自动重命名)到指定目录

求教:运行bat文件后如何让cmd窗口自动关闭?

bat和cmd文件是什么,dos又是什么东西

如何让bat,cmd文件后台运行?