编辑:这不是标题链接或包丢失的问题
我正在尝试从以下位置编译Vala示例程序:
https://wiki.gnome.org/Projects/Vala/OpenGLSamples。
我在Arch Linux上。
我有两个错误:
Vala API can't be found
Package `GL` not found
Package `GLFW' not found
答案 0 :(得分:2)
您链接到的示例有几个问题:
我试图重写glfw3.vapi
的示例:
using GL;
int show_triangle () {
// Open an OpenGL window (you can also try Mode.FULLSCREEN)
var win = new GLFW.Window(640, 480, "My example window");
if (win == null)
return 1;
// Making the context current is required before calling any gl* function
win.make_context_current ();
// Main loop, exit when the user closes the window (e.g. via ALT + F4 or close button)
while (!win.should_close) {
// OpenGL rendering goes here...
glClear (GL_COLOR_BUFFER_BIT);
glBegin (GL_TRIANGLES);
glVertex3f ( 0.0f, 1.0f, 0.0f);
glVertex3f (-1.0f,-1.0f, 0.0f);
glVertex3f ( 1.0f,-1.0f, 0.0f);
glEnd ();
// Swap front and back rendering buffers
win.swap_buffers ();
// Poll events, otherwise should_close will always be false
GLFW.poll_events ();
}
return 0;
}
int main () {
// Initialize GLFW
if (!GLFW.init ())
return 1;
int exit_code = show_triangle ();
// Terminate GLFW
GLFW.terminate ();
// Exit program
return exit_code;
}
您必须引用glfw3.vapi
文件,该文件是vala-extra-vapis软件包的一部分:
https://wiki.gnome.org/action/show/Projects/Vala/ListOfBindings
https://git.gnome.org/browse/vala-extra-vapis/tree/glfw3.vapi
问题2可以通过使用来自其他地方的gl.vapi来修复,例如:
https://github.com/mikesmullin/Vala-Genie-OpenGL/blob/master/gl.vapi
您还必须安装包含glfw3开发文件的发行包。 (例如Debian上的libglfw3-dev)
如果将vapi文件和示例源代码放在工作目录中,则可以使用以下命令编译:
valac --vapidir=. --pkg gl --pkg glfw3 test.vala
编辑:我使用glfw快速入门教程中的一些信息改进了我的代码: