mingw-32 链接程序中的 __imp__malloc 是什么?

发布于 2024-10-04 06:24:18 字数 743 浏览 4 评论 0原文

为了弄清楚交叉编译的 mingw32 程序中的 malloc() 是否是线程安全的,我在二进制文件上运行了 nm 。结果:

$ i386-mingw32-nm myfile.exe  | grep malloc
00ab04fc I __imp__malloc
005b8e70 T _malloc
$

为了进行比较,这里是对 GetLastError 的搜索,它在我的程序中使用但未定义:

$ i386-mingw32-nm myfile.exe  | grep GetLastError
005b9034 T _GetLastError@0
00ab0370 I __imp__GetLastError@0
$

这里是对我知道的东西在我的程序中的搜索:

$ i386-mingw32-nm myfile.exe  | grep ends_with
0040a98d T _ends_with
$ 

认为< /em> 这意味着我的 C 库中的 malloc() 是作为系统 malloc() 的覆盖提供的,GetLastError() 也是如此code>,但 ends_with() 不会出现在系统中。但我想要第二个意见。

谢谢!

In am attempt to figure out if malloc() in my cross-compiled mingw32 program is threadsafe or not, I ran nm on the binary. The results:

$ i386-mingw32-nm myfile.exe  | grep malloc
00ab04fc I __imp__malloc
005b8e70 T _malloc
$

For comparison, here is a search for GetLastError, which is used but not defined in my program:

$ i386-mingw32-nm myfile.exe  | grep GetLastError
005b9034 T _GetLastError@0
00ab0370 I __imp__GetLastError@0
$

And here is a search for something I know is in my program:

$ i386-mingw32-nm myfile.exe  | grep ends_with
0040a98d T _ends_with
$ 

I think that this means that malloc() in my C library is provided as a cover to a system malloc(), as is GetLastError(), but that ends_with() doesn't appear in the system. But I'd like a second opinion.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

赴月观长安 2024-10-11 06:24:18

mingw 不使用自己的 malloc,它链接 Windows malloc。所以是的,它是线程安全的,因为 Windows 是。

mingw does not use its own malloc, it links the Windows malloc. So yes, it is threadsafe, because Windows is.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文