c - 我如何链接 GLFW

标签 c opengl glfw

我正在尝试将 GLFW 链接到我的 C 程序。

文档似乎建议 #include<GLFW/glfw3.h>但是我已经安装了 2.7.2(来 self 的发行版的存储库)并且没有那个头文件:

find / -name *glfw* 2> /dev/null
/usr/lib/libglfw.so.2.6
/usr/lib/libglfw.a
/usr/lib/libglfw.so
/usr/lib/pkgconfig/libglfw.pc
/usr/lib/libglfw.so.2
/usr/include/GL/glfw.h
/usr/share/doc/libglfw-dev
/usr/share/doc/libglfw2
/var/cache/apt/archives/libglfw2_2.7.2-1_i386.deb
/var/cache/apt/archives/libglfw-dev_2.7.2-1_i386.deb
/var/lib/dpkg/info/libglfw2.list
/var/lib/dpkg/info/libglfw2.postinst
/var/lib/dpkg/info/libglfw-dev.md5sums
/var/lib/dpkg/info/libglfw2.postrm
/var/lib/dpkg/info/libglfw2.md5sums
/var/lib/dpkg/info/libglfw2.shlibs
/var/lib/dpkg/info/libglfw-dev.list

我试过了 #include<GL/glfw.h>但我仍然得到 undefined reference to 'glfwLoadTexture2D'

如何链接到 GLFW 并使用 glfwLoadTexture2D()

最佳答案

#include 对链接器没有任何作用;它只是引入了声明,而不是实际的函数。

The documentation表明 GLFW 使用 pkg-config (不足为奇;@elmindreda 知道她的东西),所以你的编译行应该是这样的:

$ cc `pkg-config --cflags glfw3` -o foo foo.c `pkg-config --static --libs glfw3`

另请注意,由于该库使用 pkg-config,因此您不应该“关心”诸如头文件和库文件在您的特定安装中的位置等细节。只需使用 --cflags--libs 模式询问,您就会得到返回的正确位置,如上例所示。

关于c - 我如何链接 GLFW,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19049769/

相关文章:

java - JMenus导致JOGL GLCanvas Canvas 闪烁

c++ - OpenGL 窗口应用程序多久检查一次事件更新?

c++ - OpenGL glfwGetVideoMode 导致段错误

c++ - glpointsize() 缩小一个点失败

c - 读取文件内容到内存,32位操作系统和64位操作系统结果不同

c - 使用 libtiff 读取 TIFF 灰度

java - 从符号到地形的 Worldwind 线

c++ - OpenGl:Arcball相机旋转问题

c - 为什么格式化输入输出需要提供变量?

c - Kqueue udata 字段更改