在我看来,我已经正确安装和配置了GLFW 3, 我的编译器告诉我。
glfw3.h和glfw3native.h位于urs / local / include / GLFW /.
libglfw3.a位于urs / local / lib /.
中在Eclipse中,我在Project Propreties中配置 - > C / C ++ Build-> Settings-> GCC C Linker-> Libraries以下值:GL,GLU,m,rt,pthread,m,glfw3, X11,Xxf86vm,Xrandr和Xi。
在我的项目中,在Test.c中我有以下测试代码:
/*
============================================================================
Name : Test.c
Author :
Version :
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/
#include <GLFW/glfw3.h>
#include <stdio.h>
#include <stdlib.h>
int main(void) {
puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */
if (!glfwInit())
exit(EXIT_FAILURE);
return EXIT_SUCCESS;
}
所以在我看来,我在互联网上看到的内容,似乎是一个不错的设置。 当我编译它时它给出了这个:
/usr/local/lib/libglfw3.a(window.c.o): In function `glfwCreateWindow':
window.c:(.text+0x724): undefined reference to `glClear'
//usr/local/lib/libglfw3.a(glx_context.c.o): In function `getFBConfigAttrib':
glx_context.c:(.text+0x4d): undefined reference to `glXGetFBConfigAttrib'
//usr/local/lib/libglfw3.a(glx_context.c.o): In function `chooseFBConfig':
glx_context.c:(.text+0x7a): undefined reference to `glXGetClientString'
glx_context.c:(.text+0xe5): undefined reference to `glXGetFBConfigs'
//usr/local/lib/libglfw3.a(glx_context.c.o): In function `createLegacyContext':
glx_context.c:(.text+0x41f): undefined reference to `glXCreateNewContext'
读到这个我得出结论,它没有找到OpenGL,但我之前已经制作了OpenGL项目并且它有效,那么为什么GLFW可以找到它呢? 感谢。
答案 0 :(得分:0)
经过一番徘徊并祈祷这个问题消失了几个小时和几天。我找到了解决方案......我并不完全理解为什么链接如此困难。
我所做的只是尝试不同的链接库选项, 这个订单对我有用:
-lglfw3 -lGL -lGLU -lX11 -Xxf86vm -lXrandr -lpthread -lXi -lm
希望这有助于其他人。