pmdk安装和编译

pmdk安装

pkg-config安装
1.yum install autoconf
2.yum install automake
3.yum install libtool
4.git clone git://anongit.freedesktop.org/pkg-config
5../autogen.sh --with-internal-glib进行编译
  1)首先系统中如果没有glib,需要先下载编译glib:
    wget http://ftp.acc.umu.se/pub/GNOME/sources/glib/2.50/glib-2.50.2.tar.xz
    tar xvJf glib-2.50.2.tar.xz
    ./configure
    如果报错显示没有libffi需要安装libffi:yum install libffi-devel
    如果报错显示没有libmount,需要安装libmount:yum install libmount -y(如果还是无法解决,显示libmount找不到,那就直接./configure --enable-libmount=no)
    make
  2)如果报错:
    autoreconf: running: aclocal -I m4macros ${ACLOCAL_FLAGS}
    m4macros/glib-gettext.m4:39: error: m4_copy: won't overwrite defined macro: glib_DEFUN
    m4macros/glib-gettext.m4:39: the top level
    autom4te: /usr/bin/m4 failed with exit status: 1
    aclocal: error: echo failed with exit status: 1
    autoreconf: aclocal failed with exit status: 1
  修改方案:
    vim glib/m4macros/glib-gettext.m4中修改:
    m4_copy([AC_DEFUN],[glib_DEFUN])
    m4_copy([AC_REQUIRE],[glib_REQUIRE])
    为:
    m4_copy_force([AC_DEFUN],[glib_DEFUN])
    m4_copy_force([AC_REQUIRE],[glib_REQUIRE])
5.make && make check && make install
    如果出现报错
    libtool: Version mismatch error.
    解决方式删除当前下载的pkg-config,重新运行
    git clone git://anongit.freedesktop.org/pkg-config
    vim glib/m4macros/glib-gettext.m4中修改:
    m4_copy([AC_DEFUN],[glib_DEFUN])
    m4_copy([AC_REQUIRE],[glib_REQUIRE])
    为:
    m4_copy_force([AC_DEFUN],[glib_DEFUN])
    m4_copy_force([AC_REQUIRE],[glib_REQUIRE])
    yum remove libtool
    libtool --version
    wget http://mirrors.ustc.edu.cn/gnu/libtool/libtool-2.4.6.tar.gz
    tar zxvf libtool-2.4.6.tar.gz && cd libtool-2.4.6
    ./configure --prefix=/usr
    make && make install
    然后回到pkg-config文件夹:
    ./autogen.sh --with-internal-glib
    make && make check && make install
安装ndctl
git clone https://github.com/pmem/ndctl.git
./autogen.sh
./configure
    1)报错:
    asciidoc needed to build documentation
    解决:
    yum install asciidoc && yum install xmlto
    2)报错:
    asciidoctor needed to build documentation
    解决
    yum install asciidoctor
    3)报错需要libkmod
    解决
    ./autogen.sh
    ./configure CFLAGS="-g -O2" --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib
    make && make install
yum install systemd-devel(需要libudev)
    1)错误,在configure的时候显示找不到libudev
    解决:因为pkg-config默认的路径是/usr/lib,而libudev安装在/usr/lib64/pkgconfig,所以需要把这个路径添加到PKG_CONFIG_PATH里面去
    export PKG_CONFIG_PATH=/usr/lib64/pkgconfig/:$PKG_CONFIG_PATH
yum install uuid-devel
yum install json-c-devel
make
make check
make install
yum install libfabric && yum install libfabric-devel(安装libfabric(v1.4.2+)(仅在librpmem中需要))
    报错:
    在make pmdk的时候:如果不下载libfabric-devel会显示rdma/fabric.h: No such file or directory  #include <rdma/fabric.h>
pmdk安装
git clone https://github.com/pmem/pmdk.git
make
yum install doxygen
make install
test是否安装成功
cd /src/test
make test
cp testconfig.sh.example testconfig.sh
./RUNTESTS
编译pmem_test文件
    错误
    如果遇见找不到动态链接库的情况,比如找不到libpmemobj.so.1,但是这个动态链接库在/usr/local/lib64里面。这里加-L也没用。需要添加
    解决
    export LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH
Makefile文件:
    PMDK_LINK_FLAGS= -L/usr/local/lib64 -lpmem -lpmemobj -lpmempool -lpmemlog -lpthread -lrt
    all: pmemobj
    pmemobj:
        g++ -std=c++11 -O0 pmdk_object_test.cc -o pmdk_object_test -I../../include $(PMDK_LINK_FLAG)
编译指令:
    g++ -std=c++11 -O0 test.cc -o pmdk_object_test -I../../include -L../pmdk -L/usr/local/lib64 -lpmem -lpmemobj -lpmempool -lpmemlog -lpthread -lrt
运行指令:
    ./pmdk_object_test -I../../include -L../pmdk -L/usr/local/lib64 -lpmem -lpmemobj -lpmempool -lpmemlog -lpthread -lrt
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值