gpt4 book ai didi

linux - 全局使用谷歌的malloc?

转载 作者:太空狗 更新时间:2023-10-29 11:34:55 25 4
gpt4 key购买 nike

我想在 Linux 上尝试使用 Google 的 tcmalloc...我这里有一个巨大的项目,其中有数百个 qmake 生成的 Makefile...我想找到一种方法让 gcc 全局链接到 tcmalloc(就像它对 libc 所做的那样)...这可能吗?还是我必须编辑每个 Makefile?

(我不想编辑所有的 pro 文件,因为它们有数百个)

(此外,我们已经尝试过 LD_PRELOAD 方法,但效果不佳)...

最佳答案

您的 makefile 如何访问编译器 (gcc/g++/cc/c++)?

如果只是通过名称 (g++),而不是通过显式路径 (/usr/bin/g++),您可以在任何目录中简单地创建一个替换 g++您喜欢,并将该目录添加到您的路径中。

例如:创建一个 ~/mytmpgccdir/g++ 文件:

#!/bin/tcsh -f
exec /usr/bin/g++ -Lfoo -lfoo $*:q

在其他参数 ($*:q) 之前或之后添加您喜欢的任何额外内容 (-Lfoo -lfoo)。

然后将其添加到您的路径中并正常生成。

#tcsh version
% set path = ( ~/mytmpgccdir/ $path:q )
% make clean
% make

附注如果它是显式名称,您可以在命令行上覆盖它。类似于: ma​​ke all GCC=~/mytmpgccdir/gcc

p.p.s 如果你确实使用了 LD_PRELOAD,你可能希望在运行你的程序之前使用这样的脚本来设置 LD_PRELOAD。否则很容易在/bin/ls、make、g++ 等每个命令上结束 LD_PRELOAD。

关于linux - 全局使用谷歌的malloc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1610166/

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