9

1 日前、SDL2 ライブラリをインストールしました。Debian Wheezy にはまだないので、configure, make, make installコマンドを使用しました。

結局、SDL_Texture を使用しようとすると、次のエラーが発生します。

error: forward declaration of ‘SDL_Texture {aka struct SDL_Texture}’
invalid use of incomplete type ‘SDL_Texture {aka struct SDL_Texture}’

宣言を探した後、見つかったのは SDL_render.h の次の 2 行だけです。

struct SDL_Texture;
typedef struct SDL_Texture SDL_Texture; 

まったく定義がありません。インストールに SDL_sysrender.h ファイルがないと思います。ダウンロードしたソースコードにはありますが、SDL2 インクルードパスにはありません。

問題はどこにありますか?構成ファイルにフラグを使用する必要がありますか? ご協力ありがとう御座います。

4

1 に答える 1

14

インストールに問題はありません。SDL_Texture は設計上不透明な型です (つまり、内部的に SDL2 によってのみ操作されるように設計されています)。ポインタとして「渡す」ことはできますが、内部にアクセスすることはできません (または、たとえば自分で SDL_Texture を作成することはできません)。構造体のサイズがわからないため、malloc を実行します)。あなたが固執するなら

SDL_Texture *blah;

ポインタをSDL2関数に渡します。問題ありません。

SDL_sysrender.h は、あなたが言及したように、ライブラリの内部消費のために SDL_Texture を実際に定義する内部ヘッダーです。

于 2013-09-20T13:19:39.197 に答える