mingw gcc 不通过 .a link 动态库

在 linux 上是没有 .lib 的文件的,只有最终文件 .so

windows 上是有 .lib 文件的。

在我的理解中 lib 文件使用来控制需要导出哪些函数,哪些函数不对外公布的。

这是 wxMSW-3.1.3_gcc810_x64_Dev.7z 文件中的文件

libwxbase31u.a
libwxbase31u_net.a
libwxbase31u_xml.a
wxmsw313u_stc_gcc810_x64.dll
wxmsw313u_webview_gcc810_x64.dll
...

这个 .a 就是 .lib 文件

.a 文件中有什么呢?

__imp_wxWebViewBackendIE

全是正常的符号前面追加 __imp_
__imp_ 我的理解是 wxWebViewBackendIE 函数不在这,在其他文件,运行时去找吧。

但是我刚发现一个有趣的东西,使得行为像 linux。可以不需要 .a,编译器通过,并正常运行。

wxmsw313u_webview_gcc810_x64.dll 该名为 libwxmsw313u_webview_gcc810_x64.dll.a(正确行为应该是创建符号链接)

在 link 时 -lwxmsw313u_webview_gcc810_x64,就行。


如果有理解错误的地方,请告诉我。 :>

你可能感兴趣的:(吐槽)