最近私のプロジェクトでcmakeを使い始め、CMAKEを使ってSDLを組み込むことができました。cmake - プロジェクト内に他のクラスファイルを表示
マイセットアップ
:は今、私はプロジェクトを生成/設定した後、私のmain.cpp
に含まれている単純なクラスファイルは、再び私のソースファイルは、そのように見える追加しました
CMakeLists.txt
cmake_minimum_required (VERSION 3.3.2)
project (2dgameengine)
set(MAIN_FILE
src/main.cpp
)
add_executable(2dgameengine
${MAIN_FILE}
)
target_sources(2dgameengine PUBLIC ${EXTRA_FILE})
set (SDL2_INCLUDE_DIR libs/sdl2/include)
set (SDL2_SOURCE_DIR libs/sdl2/src)
include_directories(${SDL2_INCLUDE_DIR} ${SDL2_INCLUDE_DIR})
target_link_libraries(2dgameengine ${SDL2_LIBRARY})
main.cppに
#include <iostream>
#include <SDL.h>
#include "Tile.cpp"
int main() {
return 0;
}
Tile.cpp
class Tile {
// ...
}
は、どのように私は私のXcodeプロジェクト内Tile.cppが見えることができますか?
EDIT これは、任意の時点で、現実の世界にヒットするものではありません。 * .hと* .cppファイルで* .cppクラスを分割するのは怠惰でした。だから私はちょうど正しい方法でない場合でも、* .cppファイルをインクルードしました。これはテスト目的のみです
私はcmakeの別のソースファイルとして設定しようとしましたが、それは私のリンカエラーを与える「main.cppには、」
通常はインクルードされたファイルに '.c'(* source *ファイル)ではなく' .h'拡張子(* header *ファイル)があります。 '私のxcodeプロジェクトに' Tile.cppを表示する 'とはどういう意味ですか?プログラムをコンパイル可能にするには、インクルードディレクトリを指定する必要があります。インクルードディレクトリには、インクルードされたファイルが含まれています。 – Tsyvarev
'.cpp'ファイルを別の' .cpp'ファイルに入れる理由は何ですか?非常に非標準です。 – Angew
これは、cmakeがヘッダファイルとソースファイルを別々に扱うため、cmake内の問題です。ファイルがその拡張子を使ってヘッダまたはソースであると推測されます。 – Oliv