2015-04-15 117 views
1

我是Cpp的一个初学者,所以对我一无所知!我正在安装ParMetis 4.0.3,但进入非默认目录。安装和使用ParMetis库

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; 
} 

我不断收到“未声明在这个范围内“对于parmetis.h中的所有/每行。

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

我感谢任何帮助!

回答

2

由于您选择将库文件 安装在默认库目录中,因此您需要提供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 /梅蒂斯

    cd /tmp/ 
    mkdir metis 
    cd parmetis-4.0.3/metis 
    make config prefix=/tmp/metis 
    make install 
    
  5. 编译测试。 wh。cpp wh ICH坐落在/ tmp/

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

应该把这个目录是到底什么?我完全输入了,它仍然告诉我一切“没有在此范围内声明”:(是否应该给它一个子目录?(它有子目录,如bin,include,lib等) – user3651766

+0

作为一个备注:由于parmetis基于MPI,因此需要在系统上安装MPI实现(例如OpenMPI)并使用mpiC++而不是g ++编译源文件 – erikzenker

+0

它应该是在安装之前配置ParMetis时使用的某个目录:make config前缀= /我的ParMETIS目录/ – erikzenker

0

当你编码wtih C++,如果你遇到这样的问题:

  • ccJjiCo。○:在函数'主 ':
  • bsplele.cpp :(文字+ 0x45e):未定义的引用`METIS_PartMeshNodal'
  • collect2:LD返回1个退出状态

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

我的右编译命令是:G ++ -L /家/的Hadoop /梅蒂斯/ lib目录-I /家/的Hadoop /梅蒂斯/包括/ LL_metis.cpp -lmetis