gpt4 book ai didi

c - 多个 GCC 版本导致多个堆,导致崩溃?

转载 作者:太空宇宙 更新时间:2023-11-04 05:00:15 26 4
gpt4 key购买 nike

我下载了一个带有一堆静态和动态库的 Linux C SDK。自述文件是这样说的:

This SDK was compiled with the gcc version 4.5.1 .

You SHOULD NOT mix this SDK binaries with other gcc versions, because your application will end up in loading two different libcs, which results in two different heaps. Mixing heaps will lead to application crashes, when trying to free memory that was allocated by another heap.

我从来没有听说过这样的事情,在网络上搜索也没有找到任何证实。我确实发现了一些关于 ABI 的东西,但据我了解,这仅意味着这些库可能与我的 GCC 版本不兼容,因为它们根本不运行。这与 libc 版本或堆无关。

那么,自述文件所说的是真的吗?或者,更笼统地说:我是否应该永远不要尝试使用我从互联网上下载的库与另一个 GCC 版本而不是它们编译的版本?如果我想使用多个使用不同 GCC 版本编译的库怎么办?

谢谢大家莫里茨

最佳答案

这可能是由于用于构建 SDK 的优化所致。如果混合,高度优化的二进制文件有更多崩溃的机会。

关于c - 多个 GCC 版本导致多个堆,导致崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16978058/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com