C++ ゲーム開発

【C++】Illegal instruction に悩まされた話

まとめ

  • return 文が抜けていたにもかかわらずコンパイルエラーになってくれていなかった.

 

はじめに

DXライブラリを使って,
android 版のテスト中.

ファイル読み込み周りの処理周りで
「Illegal instruction」というエラーが発生.

Illegal instruction って?

docs.oracle.com

通常少し異なるマシンアーキテクチャー用にコンパイルされたプログラムを実行すると発生します。

とのこと.

この情報から,ビルド構成やターゲット,
エミュレータに問題があるとみて四苦八苦した.

しかし,結果は単なるコード上のミスだった.

間違いコード

どこが間違えているかわかるだろうか?
ちなみに android (clang)ではコンパイルが通ってしまうのである.

bool ReadFile( const char* fileName, char** buffer, size_t& size )
{
size = FileRead_size( fileName );
*buffer = new char[ size ];
int handle = FileRead_open( fileName );
FileRead_read( *buffer, size, handle );
FileRead_close( handle );
}

正解は,

return ture;

が抜けているのである.

おわりに

コンパイルエラーになってくれよ...

  • この記事を書いた人

GOTH

鹿児島県出身,吉祥寺在住の27歳.職業はゲーム会社でプログラマー.趣味はバイク,車,キャンプ,ガジェット,読書,そしてゲーム開発. サイトのテーマはプログラミングとガジェットでライフハック.たまに趣味に関する雑感や記録を残していく備忘録.ツイッターもやってます.
自己紹介
お問い合わせ

-C++, ゲーム開発