mingw-32 链接程序中的 __imp__malloc 是什么?
为了弄清楚交叉编译的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
mingw 不使用自己的
malloc
,它链接 Windowsmalloc
。所以是的,它是线程安全的,因为 Windows 是。mingw does not use its own
malloc
, it links the Windowsmalloc
. So yes, it is threadsafe, because Windows is.