1

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関連の質問です..

私の問題を解決できることを願っています。

助けていただければ幸いです。

ありがとう。

4

1 に答える 1

1

target_link_librariesあなたが探していることをするべきです。これでうまくいかない場合は、サンプルの CMake コードを投稿してみてください。

于 2009-07-26T17:02:35.897 に答える