2010-12-31 11 views
0

トラブルシューティング私は私のプログラムの先頭での#includeエラー

#include "SDL/SDL_image.h" 

を持っていると私はSDL_imageの機能のいずれかを使用しながら、コンパイルしようとすると、それは

load_image() 

がで宣言されていなかったと言いますこの範囲。すべてが正しく設定されていることを確認するために何をすることができますか?

私はこれを私のリンカー設定に含めました。

+0

付属のライブラリは、関数を名前空間に配置しますか?そうであれば、([name] :: load_image())を呼び出すときにnamespace [name]を使用する宣言または完全修飾名のいずれかが必要です。 – Matt

+0

いいえ、そうではありません。 – ahota

答えて

0

エラーメッセージはリンカーではなくコンパイラからのものです。そのため、リンカの設定は何の違いもありません。

あなたがまったく無知ならば、コンパイルしようとしている前処理されたコードを生成するようにコンパイラ(プリプロセッサ)に依頼できます。 (該当するgccオプションは-save-tempsです)そうすれば、load_imageが実際に宣言されているかどうかを確認できます。条件付きコンパイルオプションが宣言を除外しているか、インクルードファイルが見つからず、エラーメッセージが表示されないことがあります。 また、あなたが想定しているC++コードをコンパイルしている場合、SDLの内容はextern Cブロックにラップされているはずです(リンカエラーが発生すると思われますが)。ただし、これらは既にSDLヘッダーに含まれている可能性があります。

それ以外の場合は、前処理された出力をどこかにアップロードしてください。

編集:SDL Image v1.2 documentationによると、イメージローダー機能は実際にはIMG_Loadと呼ばれ、load_imageという言及はありません。

関連する問題