rabit的安装与使用

首先需要从github将这个项目的存储库克隆到本地目录中。

git clone https://github.com/dmlc/rabit.git

会在当前目录出现一个名为rabit的文件

之后从进入rabit文件,里边内容如下:
在这里插入图片描述
产生lib文件
lib文件夹原本是空的,在lib里README.md是这么写的:
This folder holds the library file generated by the compiler. To generate the library file, type make in the project root folder. If you want mpi compatible library, type make mpi
所以需要将文件进行编译,产生lib文件。
Makefile文件已经存在rabit目录里了,我们只需要在rabit目录下输入make就可以了,会出现如下库文件:
在这里插入图片描述

这些文件的介绍如下:
List of Files

  • rabit.a The rabit package library

    Normally you need to link with this one

  • rabit_mock.a The rabit package library with mock test

    This library allows additional mock-test

  • rabit_mpi.a The MPI backed library

  1. Link against this library makes the program use MPI Allreduce
  2. This library is not fault-tolerant
  • rabit_empty.a Dummy package implementation
  1. This is an empty library that does not provide anything
  2. Only introduced to minimize code dependency for projects that only need
    single machine code

设置环境变量
库文件生成之后,需要添加环境变量CPLUS_INCLUDE_PATHLIBRARY_PATHLD_LIBRARY_PATH
C_INCLUDE_PATH 为头文件的搜索路径
LIBRARY_PATH为静态库搜索路径(编译时包含)
LD_LIBRARY_PATH为动态库搜索路径(链接时包含)

这三项分别设置为:

export CPLUS_INCLUDE_PATH=/home/.../rabit/include:$CPLUS_INCLUDE_PATH
export LIBRARY_PATH=/home/.../rabit/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/home/.../rabit/lib:$LD_LIBRARY_PATH

三种方法如下:

  1. 修改profile文件:
vi /etc/profile

在文档末尾写入

    export CPLUS_INCLUDE_PATH=/home/.../rabit/include:$CPLUS_INCLUDE_PATH
    export LIBRARY_PATH=/home/.../rabit/lib:$LIBRARY_PATH
    export LD_LIBRARY_PATH=/home/.../rabit/lib:$LD_LIBRARY_PATH
  1. 修改.bashrc文件:
vi ~/.bashrc

在文档末尾写入

    export CPLUS_INCLUDE_PATH=/home/.../rabit/include:$CPLUS_INCLUDE_PATH
    export LIBRARY_PATH=/home/.../rabit/lib:$LIBRARY_PATH
    export LD_LIBRARY_PATH=/home/.../rabit/lib:$LD_LIBRARY_PATH
  1. 在Terminal命令行窗口中直接使用export命令,临时写入
    export CPLUS_INCLUDE_PATH=/home/.../rabit/include:$CPLUS_INCLUDE_PATH
    export LIBRARY_PATH=/home/.../rabit/lib:$LIBRARY_PATH
    export LD_LIBRARY_PATH=/home/.../rabit/lib:$LD_LIBRARY_PATH

设置完成之后测试是否成功

编写测试文件rabittest.cpp

/* rabittest.cpp */ 
#include <iostream>
#include <rabit.h>
int main(int argc,char *argv[]) {
    std::cout << "hellorabit\n";
    rabit::Init(argc, argv);
    std::cout << rabit::GetRank();
    std::cout << "\n";
    return(0); 
}

使用如下命令编译:

g++ -o rabittest rabittest.cpp  -lrabit -std=gnu++0x

如果成功,会在当前目录出现一个可执行文件
在这里插入图片描述

之后使用./rabittest测试即可。

测试程序运行结果:
在这里插入图片描述

常见错误:
错误1:rabit.h: No such file or directory
在这里插入图片描述
环境变量设置出现错误,需要重新设置。

错误2:error: ‘nullptr’ was not declared in this scope
在这里插入图片描述
网上说是关于c++11的原因,在g++命令后加上-std=gnu++0x这一项就可以了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值