【问题标题】:ERROR: ld.so: object 'libhugetlbfs.so' from LD_PRELOAD cannot be preloaded: ignored错误:ld.so:无法预加载来自 LD_PRELOAD 的对象“libhugetlbfs.so”:忽略
【发布时间】:2016-02-26 18:51:09
【问题描述】:

我正在尝试运行一个简单的 malloc 程序来查看我的大页面环境是否已正确设置。 libhugetlbfs 仅安装在默认系统目录 /usr/local 中。操作系统是 RHEL 6.7。我检查了 libhugetlbfs.so 是否在 /usr/lib64 文件夹中。当我使用
HUGETLB_MORECORE=yes LD_PRELOAD=libhugetlbfs.so

运行我的代码时

代码

#include<stdio.h>
#include<stdlib.h>
int main()
{
   double *x;
   int y,i;
   y = 15000000;
   x = (double *)malloc(y*sizeof(double));
   if (x != NULL)
   {
       printf("\nmalloc successful\n");
   }
   else
   {
      printf("malloc unsuccesfull");
   }

 }

输出给出

**ERROR: ld.so: object 'libhugetlbfs.so' from LD_PRELOAD cannot be preloaded: ignored.**
malloc successful

很明显 malloc dint 使用大页面发生。我检查了所有环境变量..找不到问题..任何建议???

【问题讨论】:

    标签: linux huge-pages


    【解决方案1】:

    表示找不到libhugetlbfs.so。

    您必须在LD_PRELOAD 中指定完整路径:

    LD_PRELOAD=/your/path/libhugetlbfs.so
    

    因此,打开控制台并输入

    export LD_PRELOAD=/your/path/libhugetlbfs.so
    
    export HUGETLB_MORECORE=yes
    
    ./your_binary
    

    【讨论】:

    • 您好,/usr/lib64/目录下已经存在libhugetlbfs.so文件,该目录也是标准的lib目录。事实上,根据您的建议,将文件从 /usr/lib64 复制到 /usr/lib。它不采取。同样的错误即将到来。
    • 嗨..我想得到“编译库”。我使用 yum 安装了库。
    • 哦...在我看到的每个地方,要使用大页面都需要在执行“HUGETLB_MORECORE=yes LD_PRELOAD=libhugetlbfs.so ./executable”期间使用此命令。我不知道如何在编译过程中链接大页面库。你可以给这个编译标志吗??
    • 在另一个控制台中尝试通过单独导出和执行二进制文件......同样的错误......
    • 不...克劳迪奥.......它的工作.......在编译时我为编译器调用了-O优化标志并定期执行它......现在开始了。 ...我什至可以看到正在使用的大页面....
    【解决方案2】:

    我也遇到如下错误

    ERROR: ld.so: object '/usr/lib64/libjemalloc.so.1' from LD_PRELOAD cannot be preloaded
    

    以下是我的步骤为我解决了错误。

    使用以下命令转到路径 /usr/lib64 并查找 libjemalloc*

      #cd /usr/lib64
      #ls | grep libjemalloc
    

    如果您没有发现您的系统中没有安装该软件包

      $sudo yum whatprovides libjemalloc*
      $sudo yum install jemalloc-3.6.0-1.amzn2.x86_64
    

    【讨论】:

      猜你喜欢
      • 2012-01-18
      • 2013-07-17
      • 2019-05-18
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 2012-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多