2017-09-13 7 views
1

私はまったく新しいcmakeので、この低い質問をしてもGoogleに答えが見つからない場合は私を許してください。Cmake新しいプロジェクトをソリューションに追加

私はOgre3d sdkの上に空のプロジェクトを作成しようとしています。 私はcmakeとvs2015を使ってogre3dソースをビルドしました。これで、ogreのlibsとヘッダの上に自分のプロジェクトを作りたいと思っています。私はcmakeのは、作成を願っ

# specify which version you need 
find_package(OGRE 1.10 REQUIRED) 

project(OG1) 

# the search paths 
include_directories(${OGRE_INCLUDE_DIRS}) 
link_directories(${OGRE_LIBRARY_DIRS}) 

# copy essential config files next to our binary where OGRE autodiscovers them 
file(COPY ${OGRE_CONFIG_DIR}/plugins.cfg ${OGRE_CONFIG_DIR}/resources.cfg 
    DESTINATION ${CMAKE_BINARY_DIR}) 

すべてがOKとcmakeのファイルを作成する上での成功であるとcmakeの-guiのしかしでの.sln生成しますので、here は私がcmakelists.txtファイルを作成して、これらの行を追加します説明したようにOG1という名前の空のプロジェクトを作成した後、最初のOGRE hellowordを実行できますが、ALL_BUILDとZERO_CHECKだけを含む.slnファイルが生成されます。 どのようにすべての構成を持ち、ただのOgreクラスを使用するための準備ができているクリーンなプロジェクトを作成できますか?

答えて

1

CMakeの用語はVisual Studioのものと少し異なります。

特に、CMake projectは、Visual Studioソリューション(.slnファイル)を作成し、そのCMakeプロジェクトに属するCMake targetsはすべて、対応するソリューション内でVisual Studioプロジェクトとして表示されます。

CMake  Visual Studio 

project <-> Solution (.sln) 
Target <-> Project (.vcxproj) 

あなたのプロジェクトには明らかにターゲットがありません。あなたの場合、おそらく実行可能なターゲットが必要です。これはadd_executableを使って追加されます。実行可能ファイルは、プロジェクトと同じ名前を持つことができます。実行可能ファイルはCMakeで完全に空にすることはできません。空の実行可能プロジェクトの概念はVisual Studioに存在しますが、他のビルドシステムでは有効ではないため、CMakeはそれをサポートできません。したがって、少なくとも1つのソースファイルをここで指定する必要があります。

add_executable(og1 og1.cpp) 

それをそのまま使用して、残りのビルドオプションをターゲットに追加することもできます。 CMakeの、we prefer to not use the library directory for telling the build system of the library's location、ではなく、常にライブラリファイルへの完全なパスを使用することを

target_include_directories(og1 PUBLIC ${OGRE_INCLUDE_DIRS}) 
target_link_libraries(og1 PUBLIC ${OGRE_LIBRARIES}) 

注:あなたのコードはここにも働いているだろうが、現代CMakeので良いスタイルと考えられているとして、このステップは、オプションです。

+0

ありがとう!非常に良い説明。 cmakeを使って.slnを作成しました。私のこんにちはを書くつもりです。 Cmakeについて質問があれば、ここでそれを聞かせてください。そのサイトがリンクライブラリを使用しない理由と1つの質問?彼らはパッケージを呼び出すときにそれを行う必要がありますか? –

関連する問題