我正在尝试运行我的程序,这需要一个库
LD_PRELOAD
环境变量,带有valgrind。当我这样做时,我得到了
以下错误:
ERROR: ld.so: object '/path/to/lib/libLIBRARY.so' from LD_PRELOAD cannot
be preloaded: ignored.
但是,如果我要运行程序 WITHOUT valgrind,它很乐意使用
LD_PRELOAD
ed library。
为什么会这样?有没有办法解决它?
(P.S。系统是64位科学linux 5,我相信)
答案 0 :(得分:1)
如果valgrind是64位,并且共享库和应用程序都是32位,则会发生这种情况。 valgrind本身无法加载库,但它应该为应用程序本身加载。
编辑:哦,而且......你真的不应该将LD_PRELOAD用于你自己的程序所需的库,只用于调试或覆盖库。而是在可执行文件中嵌入rpath / runpath。