2015-04-15 119 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