数か月間、軽い OpenGL プログラミングを行ってきましたが、xscreensaver ライブラリを使用してスクリーンセーバーを作成したいと考えています。
これを質問する前にLinuxスクリーンセーバーの開発方法を見ましたが、特定の質問は十分に具体的ではないと思います。
私がすでにやったこと-
xscreensaver のソースをダウンロードし、README.hacking を読みました。ソースの hacks ディレクトリにある graynetic.c (readme で xscreensaver を理解するために jwz が提案するスクリーンセーバーの 1 つ) のコードをいじっています。
私はこのウェブページを読みました - http://www.dis.uniroma1.it/~liberato/screensaver/simplesquares.html (リンクされた質問の回答の1つから)。そして、simplesquares.c コードをダウンロードして実行しようとしています。
私の問題は何ですか-
- スクリーンセーバーに加えた変更をコンパイルして実行する方法がわかりません。
- 前述の simplesquares.c を gcc でコンパイルし、実行可能ファイルを実行すると、出力がまったく表示されません。私は何か間違ったことをしていますか?
注: simplesquares をコンパイルするときに X11 ライブラリをリンクするには、gcc コマンドに -lX11 を追加する必要があります。そうしないと、未定義の参照エラーが返されます。
編集:
スクリーンセーバーの graynetic.c をコンパイルすると、いくつかのエラーが返されます。その一部をここで再現しました。
greynetic.c:(.text+0x4f): undefined reference to `XGetWindowAttributes'
greynetic.c:(.text+0xa6): undefined reference to `get_boolean_resource'
greynetic.c:(.text+0xd9): undefined reference to `get_pixel_resource'
greynetic.c:(.text+0x112): undefined reference to `get_pixel_resource'
greynetic.c:(.text+0x13e): undefined reference to `get_integer_resource'
greynetic.c:(.text+0x185): undefined reference to `XCreateGC'
greynetic.c:(.text+0x1dd): undefined reference to `XCreatePixmapFromBitmapData'
これはおそらくリンク エラーです。