3

OpenSceneGraphソースをダウンロードし、「〜/ OpenSceneGraph-3.0.1」ディレクトリに解凍し、CMakeを使用して「〜/OpenSceneGraph-3.0.1-build-eclipse-cdt」にソース外のEclipsemakeプロジェクトを作成しました。 "ディレクトリ。「〜/ OpenSceneGraph-3.0.1-build-eclipse-cdt」ディレクトリで「make」を実行すると、OpenSceneGraphは正常にビルドされます。OpenSceneGraphをUbuntuシステムにしっかりとインストールしたくないので、「sudomakeinstall」を実行していません。

次に、CMakeを使用して、コンパイルされたOpenSceneGraphライブラリを使用してプロジェクトを作成します。CMakeLists.txtで次のコードを使用します。

CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT( test_proj )
FIND_PACKAGE(OpenSceneGraph)
ADD_EXECUTABLE(test test.cpp )
INCLUDE_DIRECTORIES(${OPENSCENEGRAPH_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(test ${OPENSCENEGRAPH_LIBRARIES} )

しかし、OpenSceneGraphはCMakeによって検出されなかったようです。

CMakeがコンパイル済みのOpenSceneGraphライブラリを「〜/ OpenSceneGraph-3.0.1-build-eclipse-cdt」ディレクトリで見つけて、「sudomakeinstall」を使用してOpenSceneGraphをしっかりとインストールしたかのようにプロジェクトを作成する方法を知っている人はいますか。提案をありがとう。

4

2 に答える 2

5

OpenSceneGraphをシステム全体にインストールする必要はありません。自分に合ったCMAKE_INSTALL_PREFIXを選択するだけです(例:〜/ osg)。

FindOpenSceneGraph.cmakeinstallコマンドを使用すると、 (呼び出し時にCMakeが呼び出すスクリプトFIND_PACKAGE( OpenSceneGraph ))を見つけるために、すべてが正しく配置されている(つまり、正しいディレクトリ構造になっている)ことが確認されます。

次に、、、またはのいずれOSG_DIROSGDIROSG_ROOT環境変数としてポイントし、インストール場所をポイントする必要があります。これにより、CMakeはそれを探す場所を認識します。

編集: @Hugues:もう少し明確にしようと思います:

OpenSceneGraphのセットアップ:

  1. OSGソースを取得します。
  2. CMakeを実行するときは、自分CMAKE_INSTALL_PREFIXに合ったものを選択してください。~/osg(デフォルト)でシステム全体にインストールしたくない場合/usr/local。コマンドラインに記載するか、または-DCMAKE_INSTALL_PREFIX=/home/hugues/osgのようなGUIツールを使用して設定します。ccmakecmake-gui
  3. 実行make installしてOSGをビルドおよびインストールします。
  4. 指定したものに環境変数OSG_DIRを設定しますCMAKE_INSTALL_PREFIX。(export OSG_DIR=<whereever_you_installed_osg>

プロジェクトを設定します。

  1. CMakeLists.txtで、を使用します(FIND_PACKAGE( OpenSceneGraph )必要に応じて必要なオプションの引数を追加します)。
  2. 結果の変数を使用します(${OpenSceneGraph_LIBRARIES}cmakeファイルの適切な場所など)。
  3. プロジェクトに対してCMakeを実行します。
于 2012-04-19T08:28:16.387 に答える
0

以下のコマンドをCMakeLists.txtに追加します。
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")

次に、ファイルFindOpenSceneGraph.cmakesrc/cmakedirに入れます。

FindOpenSceneGraph.cmakeはここにあります。

于 2021-08-25T04:01:54.727 に答える