我花了几天时间尝试通过 MSYS2 在 CMake 中静态链接 Win32 库,特别是 winhttp。我已经使用了
-lwinhttp
甚至-lwininet
,并尝试通过-L
、add_link_options
、target_link_options
和add_compile_options
指定路径(使用target_compile_options
)。 undefined reference to __imp_WinHttp<Function>
错误仍然存在。在撰写本文时,我正在 Windows 10 最新版本上使用 gcc 编译 C Win32 程序。请注意,我是从 Windows 环境执行的,而不是任何 MSYS2 环境。
虽然我在这里,但我也无法按照其他地方的建议指定
wmain
和/或 wWinMain
时使用 -municode
或 -mwindows
。这可能有助于确定直接问题,但我不确定它是否相关。
我错过了什么?我什至应该寻找什么?从 ld 的文档中并不清楚还可以做什么,并且将
--verbose
添加到编译选项似乎并没有提供超出其已经说明的有用信息。我对这些构建工具并不是非常熟悉,因为直到现在我还没有进行任何类型的链接。我不清楚如何正确地探测这些工具以获取解决此问题所需的信息,更不用说找到它了。