2017-10-31 18 views
0

ファイル内で3Dアーク内のポイントを取得する機能がありましたが、コードを適切なフォルダに配置しようとすると、私はそれを壊しました。それを正しく含む。ファンクションを別のファイルに移動する

元々は、 "messages.cpp"ファイル内に多くの計算がありましたが、メッセージだけを持っていて、計算は計算フォルダになければなりません。

だから今messages.cppは、このようなものです:私が持っている "../../FGProcessorModule/Calculations/ArcToPoints.h" で

#include "../../FGProcessorModule/Calculations/ArcToPoints.h" 
namespace myNamespace { 
void MsgProvider::onEvent{ 
std::vector<Formulas::LLPoint> allPoints = ArcToPoints(center, start, end); 
} 
} 

#ifndef ARCTOPOINTS_H 
#define ARCTOPOINTS_H 

#include blablabla 

namespace myNamespace{ 

std::vector<Formulas::LLPoint> ArcToPoints (Formulas::LLPoint, Formulas::LLPoint, Formulas::LLPoint); 

} 

#endif /* ARCTOPOINTS_H */ 

そして最後にで

#include "ArcToPoints.h" 
namespace myNamespace{ 
std::vector<Formulas::LLPoint> ArcToPoints (Formulas::LLPoint center, Formulas::LLPoint start, Formulas::LLPoint end){ 
     //Lots of calculations 
} 
} 

私はすべてがOKだと思いますが、私はこのERROを受ける: "../../FGProcessorModule/Calculations/ArcToPoints.cppは、" 私が持っています私はコンパイルするR:

FVIS `への未定義参照:: ArcToPoints(式:: LLPoint、 式:: LLPoint、式:: LLPoint「)

+0

あなたのファイル 'ArcToPoints.cpp'では、パスはコンパイラが起動された場所からの相対パスであるため、パス全体を'#include'文に入れるべきだと思います。または、あなたができることはインクルードパスにパスを追加することです。 (例えば、gccの '-I'引数を使って) –

+0

同じ問題を抱えていますが、提案していただきありがとうございます。 –

+0

[定義されていない参照/未解決の外部シンボルエラーとは何か、それを修正する方法は?](https://stackoverflow.com/questions/12573816/what-is-an-undefined-reference-unresolved-external-シンボルエラー&ハウツーi-fix) – VTT

答えて

0

これは非常に具体的な問題として他の人に役立つかどうかわかりませんが、これはrosとcatkinを使用したプロジェクトです。

CMakeLists.txtに新しく作成されたファイルが含まれていませんでした。今それはうまくコンパイルされました。

0

してください、建物を示し、 "未定義の参照..."エラーの直前に実行されるステップコマンド。 Eclipseを使用している場合は、Eclipseのコンソールウィンドウでそれを見ることができます。

関連する問題