2015年6月14日日曜日

undefined reference to `ほにゃらら'


GCCを使ってC言語のソースファイルをコンパイルした時に出るエラーの一つに

undefined reference to `ほにゃらら'(`ほにゃらら'に対する定義されていない参照です)

と出る場合がある。



使用した`ほにゃらら'という関数の定義が見つからないということなので、疑われるのは

  • 関数名の打ち間違い
  • インクルードするファイルが足りない

といったところ。


SDLを導入したばかりの頃、インクルードの仕組みや、コンパイルを全然理解していなかったので、
ネット上に落ちていたSDLを使ったコードを適当にコンパイルしようとして軽くハマった。


SDLやGTK+といったライブラリを利用したコードをコンパイルするには
それらをインストールするだけでなく、GCCのコマンドでオプションを設定してやる必要があるのだ。

例えばSDLならこんな感じで。
 gcc -o SDLtest SDLtest.c -lSDL -lSDL_image -lSDL_ttf -lSDL_mixer

詳細はまた追加するかも。

0 件のコメント:

コメントを投稿