2012-02-07 15 views
-1

私はdealiiライブラリを使用するいくつかのoopコードを書いています。'elast_opt()'への未定義の参照collect2:ldが1の終了ステータスを返しました

using namespace dealii; 

template <int dim> 
class elastic 
{ 
    public: 

    elastic(const Triangulation<dim> *triang); 
    ~elastic() ; 

     void run() ; 

    private: 
. 
. 
. 

とヘッダを含む別のヘッダーに:elasticは以下のように予選ヘッダに定義されて

クラス

template <int dim> 

    elastic<dim>::elastic(const Triangulation<dim> *triang): dof_handler (triangulation), fe (FE_Q<dim>(1)) 

    {triangulation.copy_triangulation (*triang);} 

と私の主を以下書き込み:

#include "prelim.h" 

using namespace dealii; 

int main() 

{ 
    deallog.depth_console (0);  
    elastic<2> *elast_opt();  
    for (iter=0; iter<5 ; ++iter)  
     elast_opt()->run();  
    return 0; 
} 

私はこれらのエラーを得るコンパイル:

....../main.cc:16: undefined reference to `elast_opt()' 
collect2: ld returned 1 exit status 
make: *** [main] Error 1 
+1

あなたが気に署名を書き出すために、しかし、単語「I」を活用していない:

私の謝罪は、私がaplyingの変更が提案してbeforementioned部品を排除せずにエラーに変更されていることを言及するのを忘れてしまいました。実際には、何か。どのように独特な。 –

答えて

0

応答のためのhmjdに感謝します。 それは私のように定量前とセットアップヘッダ内のいくつかの部分をなくすと同じように動作します:定量前ヘッダー内 :

public: elastic(/*const Triangulation<dim> *triang*/); 
~elastic() ; 
void run() ; in setup header : 
elastic<dim>::elastic(/*const Triangulation<dim> *triang*/): dof_handler (triangulation), 

fe (FE_Q<dim>(1)) 
{/*triangulation.copy_triangulation (*triang);*/} 

が、これらの部分は削除してはいけませんし、実際に私は、これらの部品との問題だかを知りたいです。

==============debug========= main.cc -> main.g.o main.g.o 
main.cc: In function ‘int main()’: 
main.cc:11:43: error: no matching function for call to ‘elastic<2>::elastic()’ 
main.cc:11:43: note: candidates are: 
setup.h:12:3: note: elastic<dim>::elastic(const dealii::Triangulation<dim>*) [with int dim = 2] 
setup.h:12:3: note: candidate expects 1 argument, 0 provided 
prelim.h:38:7: note: elastic<2>::elastic(const elastic<2>&) 
prelim.h:38:7: note: candidate expects 1 argument, 0 provided 
make: *** [main.g.o] Error 1 
s 
関連する問題