安装和使用ParMetis库

时间:2015-04-15 12:28:18

标签: c++

我正在安装ParMetis 4.0.3但是安装到非默认目录中,其中包含:

make config prefix=/My-ParMETIS-Directory/

然后:

make install

之后,我在该文件夹中获得了一组目录。要编写一个使用它的程序,我应该添加' include" parmetis.h"'在标题中,还添加了“库/二进制文件”。我究竟该如何做后者?

我只是想让我的代码立即编译,然后运行:

g++ test.cpp

这是test.cpp:

#include<iostream>
#include "include/parmetis.h"

using std::cout;
using std::endl;

int main()
{
    cout << "Test!" << endl;
    return 0;
}

我一直在&#34;未在此范围内宣布&#34;对于parmetis.h中的所有/每行。

如何让test.cpp使用已安装的其他文件夹/文件?

2 个答案:

答案 0 :(得分:3)

您需要提供ParMetis库的位置 编译器,因为您已选择安装库 不在默认的库目录中。

mpic++ test.cpp -I /My-ParMETIS-Directory/ -I /My-METIS-Directory/

修改#2:

我为编译代码所做的工作:

  1. 将ParMetis库从网页下载到 / tmp

    cd /tmp/
    wget http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/parmetis-4.0.3.tar.gz
    
  2. 解压缩档案

    tar -xf parmetis-4.0.3.tar.gz
    
  3. 将ParMETIS安装到目录 / tmp / parmetis

    mkdir parmetis
    cd parmetis-4.0.3/
    make config prefix=/tmp/parmetis
    make install
    
  4. 将METIS安装到目录 / tmp / metis

    cd /tmp/
    mkdir metis
    cd parmetis-4.0.3/metis
    make config prefix=/tmp/metis
    make install
    
  5. 编译 test.cpp ,它位于/ tmp /

    cd /tmp/
    mpic++ test.cpp -I /tmp/parmetis -I /tmp/metis
    

答案 1 :(得分:0)

当你使用C ++进行编码时,如果你遇到这样的问题:

  • ccJjiCo.o:在函数`main'中:
  • bsplele.cpp :(。text + 0x45e):对“METIS_PartMeshNodal”的未定义引用
  • collect2:ld返回1退出状态

你可以查看编译器句子,你应该在编译命令的末尾粘贴-lmetis。它对我很有用。

我正确的编译命令是:g ++ -L / home / hadoop / metis / lib -I / home / hadoop / metis / include / LL_metis.cpp -lmetis