cmake でビルドする qgis ソース コードをカスタマイズしています。
多くのサブディレクトリを持つソースツリーがあります(サブディレクトリもその中にあります)。
ソース ツリー全体は、GIS コア コンポーネントを含むコア、GUI を処理する GUI、メイン アプリ (main.cpp を含む) を処理するアプリ、その他のモジュールなどのモジュールに分割されます。
問題は、別のモジュールの静的クラス メンバーにアクセスする必要があるという要件に固執していることです。正確には、Gui モジュールの QgisApp クラスのメンバーです。
したがって、通常、guiモジュールの.cppの1つにqgisapp.hを含めると、アクセスしたいメンバーへの未定義の参照が得られます..後で、Gui内にあるCMakeLists.txtファイルに.hと.cppを含めましたモジュールのルート ディレクトリを削除し、Makefile に適切なインクルードが含まれるように cmake を再度実行しましたが、未定義の参照が大量にある場合、実際には数が増加しました (おそらく、CMakeLists.txt 自体に追加した .h および .cpp に他の . h および .cpp (アプリ モジュール自体の CMakeLists.txt に参照がある)。
では、それぞれのルートディレクトリに配置された CMakeLists.txt の異なるセットで構築されている他のモジュールで、あるモジュールのクラスのメンバーを使用するにはどうすればよいですか??
この質問はqgisに特に関連していませんが、qgisが持っているものに似たソースツリーに出くわす可能性があります..だから、基本的にCmake関連の質問です..
私の問題を解決できることを願っています。
助けていただければ幸いです。
ありがとう。