步骤 1:使用 CMAKE 在系统上安装 GLFW 3
本次教程是在 KUbuntu 13.04 64 位上进行的。
首先,从www.glfw.org下载最新版本(假设未来版本的操作方式类似),可以使用这个链接。
接下来,解压归档文件并打开终端。cd
进入glfw-3.X.X目录并运行cmake -G"Unix Makefiles"
,您可能需要提升权限,并且还可能需要先安装构建依赖项。要执行此操作,请尝试sudo apt-get build-dep glfw
或sudo apt-get build-dep glfw3
或手动执行,就像我使用sudo apt-get install cmake xorg-dev libglu1-mesa-dev
一样... 您可能需要其他库,例如pthread库... 显然,我已经安装了它们。(请参见下面给g++链接器阶段给出的-l选项。)
现在,您可以输入make
,然后输入make install
,这可能需要您首先输入sudo
。
好的,您应该可以在最后三个CMake阶段获得一些详细的输出,告诉您已经构建了什么或者它们被放置在哪里。(例如,在/usr/include
中。)
步骤 2:创建一个测试程序并编译
下一步是启动vim(“什么?!vim?!”你问道),或者你喜欢的IDE/文本编辑器...我没有使用vim,我用的是Kate,因为我在KUbuntu 13.04上...不管怎样,从
这里下载或复制测试程序(页面底部),保存并退出。
现在使用
g++ -std=c++11 -c main.cpp
编译-不确定是否需要c++11,但我使用了
nullptr
,所以我需要它...您可能需要升级您的gcc到4.7版本或即将推出的4.8版本...关于这个的信息在
这里。
然后修复错误,如果您手动输入程序或尝试过于聪明而某些东西无法运行...然后使用以下命令进行链接:
g++ main.o -o main.exec -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi
因此,您可以看到,在“安装构建依赖项”部分,您可能还想检查您是否已安装GL、GLU、X11 Xxf86vm(不知道这是什么)Xrandr posix线程和Xi(不知道这是什么)开发库。也许还要更新你的显卡驱动程序,我认为GLFW 3可能需要OpenGL version 3或更高版本?也许有人可以证实一下?如果您得到未定义引用
dlclose
,您还可能需要添加链接器选项
-ldl -lXinerama -lXcursor
才能使其正常工作(由@user2255242贡献)。
是的,我确实需要那么多的
-l
!
第三步:您已经完成了,祝您拥有愉快的一天!
作者注:
这可能不是一个好主意。这种方法(使用sudo make install)可能会对您的系统造成风险。(请参见不要破坏Debian)
理想情况下,我或其他人应该提出一种解决方案,它不仅仅将lib文件等安装到系统默认目录中,而是应该由像apt
这样的包管理器进行管理,否则这样做可能会导致冲突并破坏您的包管理系统。
请查看新的“2020答案”以获取另一种解决方案。
希望这些信息是正确的,并且一切顺利,您享受了编写GLFW测试程序的过程。同时,希望本指南能够帮助那些像我一样遇到困难的人。
顺便说一句,所有的标记都是我在stackoverflow上寻找没有答案的问题时所搜索的内容。(直到现在为止。)希望如果您和我一样处于类似的位置,那么这些标记就是您所搜索的内容。