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

问题描述

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 文件使其变得容易。 感谢您的帮助!

解决方法

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

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

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