gpt4 book ai didi

c++ - Linux 如何决定使用什么 `malloc`?

转载 作者:IT王子 更新时间:2023-10-29 00:56:18 26 4
gpt4 key购买 nike

我知道如何用 LD_PRELOAD 替换 malloc;预加载的库获得优先权,因此如果我们预加载 jemalloc,可执行文件将获得其 malloc 版本。但是,当我们使用 -ljemalloc 构建应用程序时,我们还将它链接到 glibc。 Linux 如何知道它必须使用 jemalloc malloc 而不是 glibc?如果我同时链接 jemalloctcmalloc 会怎么样,我们现在将有 3 个 malloc,Linux 是什么以及为什么(或者可能是链接器,我不确定)会选择吗?

最佳答案

您可以通过运行来检查正在加载的库的顺序:

strace -ff -s 999 YOUR_BINARY 2>&1 | grep -e 'library1' -e 'library2'

顺序应与 ldd YOUR_BINARY 的输出匹配。

是的,如前所述,第一个图书馆将获得优先权。

关于c++ - Linux 如何决定使用什么 `malloc`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33945595/

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