
Ubuntu日本語フォーラム

ログインしていません。
こんばんは。
18.04 LTSでC/C++を使ってゲーム作りを行おうとしています。
しかし、題名通りSDL.hをインクルードしてもコンパイルできません。
1)#include <SDL.h>
でコンパイルすると、
SDL.h: そのようなファイルやディレクトリはありません
#include <SDL.h>
と表示されるので、パスを指定して直接コンパイルしました。すると
/tmp/ccxvGevy.o: 関数 `main' 内:
test.cpp:(.text+0x15): `SDL_Init' に対する定義されていない参照です
test.cpp:(.text+0x23): `SDL_GetError' に対する定義されていない参照です
test.cpp:(.text+0x37): `SDL_Log' に対する定義されていない参照です
test.cpp:(.text+0x43): `SDL_Quit' に対する定義されていない参照です
collect2: error: ld returned 1 exit status
と出てしまいます。
その時のコードは以下です。
#include </usr/local/include/SDL2/SDL.h>
int main(int argc, char* argv[]) {
if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO) != 0) {
SDL_Log("SDLを初期化できなかった: %s", SDL_GetError());
return 1;
}
/* ... */
SDL_Quit();
return 0;
}
どうかエラーなくコンパイルする方法を教えてください。
Ubuntuもプログラミング言語もまだ初心者なので、足りない情報があれば教えてください。
オフライン
ずいぶんとプログラミングから離れているので具体的な解決手法の提示はできませんが、
エラーメッセージからすると、リンク ライブラリの場所を指定しないでビルドしているのが原因と思われます。
前半にヘッダー ファイルが見つからないというエラーがあったということからも、依存ファイルの場所を意識しないままにプログラミングを行っているような気がします。
実際に自身が作成・編集するファイル以外に、そのコードが参照 (依存) するファイルの場所を理解して、コンパイル時にそれを指定してください。
オフライン
no522 による投稿:
こんばんは。
18.04 LTSでC/C++を使ってゲーム作りを行おうとしています。
しかし、題名通りSDL.hをインクルードしてもコンパイルできません。
1)#include <SDL.h>
でコンパイルすると、
SDL.h: そのようなファイルやディレクトリはありません
#include <SDL.h>
と表示されるので、パスを指定して直接コンパイルしました。すると
/tmp/ccxvGevy.o: 関数 `main' 内:
test.cpp:(.text+0x15): `SDL_Init' に対する定義されていない参照です
test.cpp:(.text+0x23): `SDL_GetError' に対する定義されていない参照です
test.cpp:(.text+0x37): `SDL_Log' に対する定義されていない参照です
test.cpp:(.text+0x43): `SDL_Quit' に対する定義されていない参照です
collect2: error: ld returned 1 exit status
と出てしまいます。
その時のコードは以下です。
#include </usr/local/include/SDL2/SDL.h>
int main(int argc, char* argv[]) {
if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO) != 0) {
SDL_Log("SDLを初期化できなかった: %s", SDL_GetError());
return 1;
}
/* ... */
SDL_Quit();
return 0;
}
どうかエラーなくコンパイルする方法を教えてください。
Ubuntuもプログラミング言語もまだ初心者なので、足りない情報があれば教えてください。
ネットを検索すると、いくつかのUbuntuでの紹介ページがヒットします。
その中の一つによると、Ubuntuのパッケージも標準で用意されているようです。
( https://gihyo.jp/admin/serial/01/ubuntu-recipe/0268 )
確認(Ubuntu 18.04)
sudo apt list 'libsdl*'
で、SDL のバージョン1.2 と2.0 があるようです。
初心者ということなので、最初は、Ubuntuのパーケージを使い、勉強されては、如何でしょうか?
* Ubuntuのバージョンを明記しましょう。
* プログラミングには、開発関係のツールの使い方を、覚える必要があります。
テキストエディタ、gcc, make, ld 等々
eclipse などの、IDE(統合開発環境)を使うことも選択肢に入るかもしれません。
* インクルードファイルの位置は、通常、gcc のオプションとして指定します。
オフライン