この質問は私に野生のガチョウの追跡につながったので、事実を真似するためにそれを修正したいと思いました。私はこのコンストラクタが見つかりません - QtビルドプロセスにCPPファイルを追加する方法
//third party .h file
class ChildX : public ParentY {
public:
OtherClass member;
}
//third party .h file
class ParentY {
protected:
ParentY();
//other public attributes
}
//third party .cpp file
ParentY::ParentY {
}
のようなエラーがある私は役に立たないエラーメッセージ
Undefined reference to 'ParentY::ParentY()' in function 'SomeClass::DoX()';
を得た私は、これらのクラスのいずれかをコンパイルしようとした任意の時間に配置されたクラスのセットで働いています
完全に役に立たないが、私は最終的に問題がCPPファイルのコンストラクタによって発生していると判断しました。どうやら、ChildX.hファイルを含むコードは、ParentY.cppファイルに隠されたコンストラクタとリンクしていません。解決策(例:https://ubuntuforums.org/showthread.php?t=1966081)では、残りのビルドを実行する前に問題のcppファイルをコンパイルする必要があるようです。だから今、私はエラーがあると、それを解決する方法を、私はちょうどQtCreator
'CoreStructのX;'と '新しいCoreStructは();'同じコンストラクタを使用します。 –
'いくつかのクラスにはコンストラクタが定義されていません.'そして' CoreStruct x; 'も動作しません。 – Yakk
秒待ってください。明らかにしてください:彼らはコンストラクタを持っていないか、またはデフォルトの(パラメータなしの)コンストラクタを持っていませんが、パラメータを必要とするコンストラクタを持っていますか? – user4581301