使用xscreensaver编写屏幕保护程序的提示和技巧?

Cha*_*tem 6 c linux opengl screensaver

我已经做了几个月的轻微OpenGL编程,现在我想使用xscreensaver库编写一个屏幕保护程序.

我在问这个之前看过如何开发linux屏幕保护程序,但我认为这个问题不够具体.

我已经做了什么 -

  1. 我下载了xscreensaver源代码并阅读了README.hacking.我在源的hacks目录中使用greynetic.c(其中一个屏幕保护程序jwz建议用于理解自述文件中的xscreensaver)的代码.

  2. 我阅读了这个网页 - http://www.dis.uniroma1.it/~liberato/screensaver/simplesquares.html(来自链接问题的答案之一).我下载了simplesquares.c代码,我正在尝试运行它.

我的问题是什么 -

  1. 我不明白我应该如何编译和执行我对任何屏幕保护程序所做的任何更改.
  2. 使用gcc编译前面提到的simplesquares.c并运行可执行文件根本不显示任何输出.难道我做错了什么?

注意:您必须在gcc命令中添加-lX11,以便在编译simplesquares.c时链接X11库.否则它将返回未定义的引用错误.

编辑:

在编译屏幕保护程序greynetic.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'
Run Code Online (Sandbox Code Playgroud)

这可能是一个链接错误.