まあ、私には何が起こっているのかは本当に不思議ですが、私はそれを明確にしようとします。 私はクラスを持っており、ある方法ではスローを定義することにしました(hpp定義とcpp実装で)。 私はstd :: exceptionをスローできるメソッドを持っています。 ここに問題はありません。スローを追加するとC++リンカが失敗する
私は私の例外を作成する方法
class myclass {
void mymethod() throw(std::exception);
}
:
class myclass {
void mymethod() throw(MyException); // I have included hpp file where MyException is defined
}
OK
class MyException : public std::exception {
public:
MyException() throw();
~MyException() throw();
const char what() const throw();
}
OK、のから私の方法で を、それを使用してみましょう! これは)私が
/tmp/ccwSS5GE.o:(.gcc_except_table+0x84得るものです:collect2は ' MyException用のTypeInfo' へ 未定義の参照:ldは
1つの 終了ステータスを返しましたなぜ?? std :: exceptionを使用するとすべて正常に動作しますが、現在は何も問題ありません。
として定義されている基本クラスのstd ::例外で1に対して共変されていない、あなたのクラスの戻り値の型「のconstのchar」(HTTP [このスレッドは役立つはず]を: //stackoverflow.com/questions/307352/g-undefined-reference-to-typeinfo)具体的に[タイラーMcHenryの答え](http://stackoverflow.com/questions/307352/g-undefined-reference-to-typeinfo/307440#307440)をチェックしてください - それでも解決できない場合は、あなたのコードをすべて表示してくださいどのように使用しようとしていますか? – birryree
リンカーがクラッシュしませんでした。それは単にあなたのプログラムにエラーを報告しました。 –
リンクオーダーはunixで役割を果たします。それを試して? – Muggen