あなたがリードする期間その
間違っ
gcc filename.c -o test -I./include -L./usr/local/include/SDL2 -lSDL2main -lSDL2 -lSDL_mixer -lSDL_image
近いたくない - 必ずしもまだ
gcc filename.c -o test -L/usr/local/include/SDL2 -lSDL2main -lSDL2 -lSDL_mixer -lSDL_image
を修正していない先頭のピリオドと任意のパスは現在のディレクトリから起動して行くことを示しています相対的な目的の絶対パスの代わりに
どのシステムでもあなたは...標準のインストール
-I/include
を行うので、必要性を全く使用していない場合は問題ありデフォルトのライブラリパスの電子の概念...いつかライブラリが識別および自動これらを移入するためにヘルパーを持っています...
SDLとSDL2は、このようなヘルパーを持っている...これはあなたにそれらのバッククォートが...別の構文スタイルが
gcc -o test filename.c $(pkg-config --cflags --libs sdl2)
0123だろう
gcc -o test filename.c `pkg-config --cflags --libs sdl2`
通知をそれらの設定を行いますあなたはそれだけでかいま見
pkg-config --cflags --libs sdl2
を取るために単独で立つ発行するのは自由です
...あなたのSDLのミキサーに出力さて
-D_REENTRANT -I/usr/include/SDL2 -lSDL2
...よくそれは
pkg-config --cflags --libs SDL2_mixer
を持っています
...出力
-D_REENTRANT -I/usr/include/SDL2 -lSDL2_mixer -lSDL2
あなたはおそらくSDL2とSDLを混在させたくない
ので
pkg-config --cflags --libs SDL2_image
あたりとして
-lSDL2_mixer -lSDL2_image
で
-lSDL_mixer -lSDL_image
の言及を交換...出力そう単純
gcc -o test filename.c -lSDL2main $(pkg-config --cflags --libs sdl2 SDL2_mixer SDL2_image)
これは、単に以下のためにストリップダウン...まだ構文の上に、より堅牢であることが可能に組み合わせてこれらを一緒
gcc -o test filename.c -lSDL2main $(pkg-config --cflags --libs sdl2) $(pkg-config --cflags --libs SDL2_mixer) $(pkg-config --cflags --libs SDL2_image)
以上を束ねる
-D_REENTRANT -I/usr/include/SDL2 -lSDL2_image -lSDL2
変更
gcc -o test filename.c -D_REENTRANT -I/usr/include/SDL2 -lSDL2main -lSDL2 -lSDL2_mixer -lSDL2_image
非常に詳細な回答をいただきありがとうございます。私はまだこれを試していないが、私はそれが動作すると確信しています! – TheCrifix
'pkg-config'は' $(pkg-config --cflags --libs sdl2 SDL2_mixer) 'と組み合わせることができます。 –
@Scott Stenslandちょっとスコット、私はあなたが示唆したように次のコンパイルコマンドを使用しました:gcc -o test filename .c -lSDL2main $(pkg-config --cflags --libs sdl2 SDL2_mixer SDL2_image)とコンパイルされましたが、プログラムをテストするときにエラーが発生しました。私のプログラムをテストしたところ、利用可能なビデオデバイスがないとの報告がありました。何か案は? – TheCrifix