Chez Scheme的OpenGL 库(目前仅适用于 Linux)加载 GLUT 库,如下所示:
(define no-op (load-shared-object "libglut.so.3"))
这是该代码的链接。
当然,我们希望库libglut.so.3
在 Linux 上加载,但GLUT.framework/GLUT
在 macOS 上加载。
以下是 Ypsilon Scheme 如何基于平台加载库的示例:
(define libGLUT
(cond
(on-darwin (load-shared-object "GLUT.framework/GLUT"))
(on-windows (load-shared-object "glut32.dll"))
(on-linux (load-shared-object "libglut.so.3"))
(on-freebsd (load-shared-object "libglut.so"))
(on-openbsd (begin
(load-shared-object "libXmu.so.10.0")
(load-shared-object "libGLU.so.7.0")
(load-shared-object "libglut.so.3.7")))
(else
(assertion-violation
#f
"can not locate GLUT library, unknown operating system"))))
在 Chez Scheme 上检查平台的好方法是什么,以便我们可以在绑定外国图书馆时做类似的事情?