###前提・実現したいこと
cocos2d-xでVisual Studioにてコードを書いてゲームを作っていたところ、リンクエラーが発生してコンパイルが通らなくなってしまったので、原因が知りたいです。
当該のソースコードが長く、どこが原因なのかわからない状況なので、失礼ながらGithubのページを貼らせていただきます。Githubのソースコードのページ
###発生している問題・エラーメッセージ
このソースをコンパイルすると次のようなエラーが発生します。
エラー LNK2019 未解決の外部シンボル "public: static class Control * __cdecl day0::Esc::createControl(void)" (?createControl@Esc@day0@@SAPAVControl@@XZ) が関数 "public: __thiscall <lambda_2ce949d33d01c661ff20a149da4ce5a6>::operator()(void)const " (??R<lambda_2ce949d33d01c661ff20a149da4ce5a6>@@QBE@XZ) で参照されました。 rifujin2 C:\cocos2d-x\projects\rifujin2\proj.win32\Prologue.obj 1
###該当のソースコード
Sequence/Prologue.cppの111行目
cpp
1auto control = (day0::Esc*)day0::Esc::createControl();
が参照している、Script/day0/fieldDef.hの26行目
cpp
1static Control* createControl();
が未解決だというエラーのようですが、ここの定義はScript/day0/fieldList.cppの8行目
cpp
1Control* Esc::createControl() { 2 return Esc::create(); 3}
に記載されています。
###試したこと
Script/day0/fieldDef.hの2行目
cpp
1#pragma execution_character_set("utf-8")
をコメントアウトしたり付け直したりして、コンパイルが通ることがありましたが、別のソースコードを編集してビルドすると度々同じ場所でリンクエラーが発生し、再びここのコメントを弄って直していました。
しかし、ここのコメントを変えてもどこを書き換えても直らない時があり、調べても根本的な原因がわからなかったので質問させていただきました。
ソースコードは全てUnicode(utf-8 シグネチャ付き)で保存しています。
AndroidStudioでビルドした時はきちんとコンパイルは通りました。
###補足情報(言語/FW/ツール等のバージョンなど)
言語:C++
フレームワーク:cocos2d-x v3.15
開発環境:Visual Studio Community 2017
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/04 12:52
2017/06/04 14:56
2017/06/05 08:17