2016-07-17 3 views
-1

ライブラリ「entityx」(https://github.com/alecthomas/entityx)をダウンロードしてC++プロジェクトで使用しました。私のプロジェクトでEntityXを使用するには?

私は新しいプロジェクトを作成しました。プロジェクトのインクルードディレクトリに置いた "entityx"というフォルダを取得しました。 「entityx」で、私はconfig.hconfig.h.inを変更し、私はその後、私はファイルをインクルードする./includeレパートリーに見て私のプロジェクトを構成し

static const size_t MAX_COMPONENTS = 64; 
typedef double TimeDelta; 

で2つのcmakeの行を置き換えます。私はうまく働いた#include "entityx/entityx.h"を含め、その後、私は新しい世界をこのように作成しました:

entityx::EntityX* world = new entityx::EntityX(); 

しかし、今回はそれがコンパイルされませんでした、それは言って、コンストラクタライン上quick.hに私をリダイレクトします。

undefined reference to entityx::EventManager::EventManager()

undefined reference to entityx::EntityManager::EntityManager(entityx::EventManager&)

などあなたがgithubの上で見ることができるように、コンストラクタが存在し、ファイルが含まれていますが、私はコンパイルエラーを得なかっました。

これはどこから来たのでしょうか?

+1

ライブラリはヘッダーのみではありません。あなたは実際にそれを作りましたか? – ildjarn

+0

ああ、まあいいえ、私はそれをどうやって行うのかわからない、私はコンパイルしなければならなかったライブラリを一度も使用していない。これは、Githubでの操作方法についてはほとんど説明されていませんが、Windowsでは何も説明されていません。私はCMakeをインストールしようとしましたが(ソースフォルダにはbtw、フォルダ全体を取るか、またはentityxかmabe cmakeしか必要ないのですか?)、エラーが出ます。他の方法はありますか? – Urefeu

+1

[this](https://github.com/skypjack/entt)が役に立つかもしれません。 [EnTT](https://github.com/skypjack/entt)はクリーンなインターフェイスを備えた、高速のヘッダーのみのECSライブラリです。ベンチマークは上記のリンクと[ここ](https://github.com/)で見つけることができます。 abeimler/ecs_benchmark);すぐに_master_サポートが中止されるため、あなたは_experimental_ブランチを利用することをお勧めします。 –

答えて

1

この質問にはとタグ付けされているので、私はLinux上でgccを使用しているか、Windows上でmingwを使用していると仮定しています。

EntityXなどのライブラリを構築するには、自分のプロジェクトではなく、ダウンロードしたリポジトリにビルドする必要があります。

まず、the latest releaseをダウンロードします。フォルダを解凍したら、build(または好きなもの)を内部に入れ、cdをAdmin対応のコマンドプロンプトまたは端末で作成します。

何らかの理由で、EntityXを構築しようとすると警告が表示されるので、CmakeLists.txtの29行目の-Werrorを削除してください。 MinGWのとLinux上

cmake .. 

およびWindows上の

cmake -G "MinGW Makefiles" .. 

は今、あなたは、このようにCMakeを起動することができます。ファイルが生成されたら、LinuxまたはWindows上の

mingw32-make 
mingw32-make install 

make 
make install 

を実行します。ファイルのインストール先を教えてください。次に、生成されたincludelibフォルダをCodeBlocksのプロジェクト設定に追加することができますが、私はそのIDEを自分で使用しないので、それについてはあまりよく分かりません。

EDIT:おそらくより良い方法:

使用-G "CodeBlocks - MinGW Makefiles"またはそれぞれ-G "CodeBlocks - Unix Makefiles"すぐに使用できるコードブロックのプロジェクトを取得します。すでに設定されているプロジェクトがある場合でも、これはうまく動作しません。

関連する問題