GLFW3
昨晚我工作到很晚,试图从源代码为 Linux 构建 GLFW 3 包。这个过程花了我很长的时间,总共大约3个小时,部分是因为我不熟悉CMake,部分是因为我不熟悉GLFW。
我希望这篇文章能让你摆脱我昨天遇到的困难!我想我应该写一个简短的文章,希望能节省你几个小时的生命……
感谢#glfw IRC channel 上的“urraka”、“b6”和“niklas”,我已经能够让 glfw 3.0.1 版正常工作。
事实证明,这不是一个简单的过程(当然不是对我而言,我不是专家),因为网络上没有太多关于 glfw3 的文档,尤其是关于使用 CMake 设置它的文档。
我被要求将其分成一个问答部分,所以我已经这样做了,答案部分现在在下面。
您是 GLFW 的维护者,还是 GLFW 团队的成员?
如果 GLFW3 的任何维护者看到这个,那么我给他们的信息是,请在您的网站上添加“在 Windows、Mac OS X 和 Linux 上设置 GLFW3”部分!使用 GLFW 编写程序非常容易,因为在线文档非常好,快速浏览所有可用的类和模块,您就可以开始了。以 here 为特色的测试项目示例也很好。我发现的两个主要问题是,首先如何在我的系统上设置 GLFW3,其次如何构建 GLFW3 项目?对于非专家来说,这两件事可能还不够清楚。
编辑
今天简单看了一下(日期:2014-01-14),看起来 GLFW 网站自从我上次看以来已经发生了很大的变化,现在有一个关于编译 GLFW 和使用 GLFW 构建程序的部分,我认为是新的。
最佳答案
第 1 步:使用 CMAKE 在您的系统上安装 GLFW 3
对于这次安装,我使用的是 KUbuntu 13.04,64 位。
第一步是从 www.glfw.org 下载最新版本(假设将来的版本以类似的方式工作) , 可能使用这个 link .
下一步是解压存档,然后打开一个终端。 cd
进入 glfw-3.X.X 目录并运行 cmake -G "Unix Makefiles"
您可能需要提升权限,并且您可能还需要安装构建依赖项首先。为此,请尝试 sudo apt-get build-dep glfw
or sudo apt-get build-dep glfw3
or 手动操作,就像我使用 sudo apt-get install cmake xorg-dev libglu1-mesa-dev
... 可能还有您需要的其他库,例如pthread 库...显然我已经有了它们。 (请参阅下面为 g++ 链接器阶段提供的 -l 选项。)
现在您可以键入 make
,然后键入 make install
,这可能需要您先 sudo
。
好的,您应该在最后三个 CMake 阶段获得一些详细的输出,告诉您构建了什么或放置在哪里。 (例如,在 /usr/include
中。)
第二步:创建测试程序并编译
下一步是启动 vim(“什么?!vim?!”你说)或您首选的 IDE/文本编辑器...我没有使用 vim,我使用的是 Kate,因为我在 KUbuntu 13.04 上...无论如何,从here下载或复制测试程序(在页面底部)并保存,退出。
现在使用 g++ -std=c++11 -c main.cpp
进行编译 - 不确定 c++11 是否 required 但我使用了 nullptr
所以,我需要它...您可能需要将您的 gcc 升级到 4.7 版,或即将推出的 4.8 版...关于此的信息 here .
如果您手动键入程序或试图“太聪明”并且某些东西不起作用,那么请修复您的错误......然后使用这个怪物链接它! g++ main.o -o main.exec -lGL -lGLU -lglfw3 -lX11 -lXxf86vm -lXrandr -lpthread -lXi
所以你看,在“安装构建依赖”部分,你可能还想检查您是否安装了 GL、GLU、X11 Xxf86vm(无论是什么)Xrandr posix-thread 和 Xi(无论是什么)development 库。也许也更新您的图形驱动程序,我认为 GLFW 3 可能需要 OpenGL 版本 3 或更高版本?也许有人可以证实这一点?如果您获得对 dlclose
的 undefined reference ,您可能还需要添加链接器选项 -ldl -lXinerama -lXcursor
以使其正常工作(归功于@user2255242)。
而且,是的,我确实需要那么多 -l
!
第 3 步:您已完成,祝您有美好的一天!
希望这些信息是正确的,并且一切都对您有用,并且您喜欢编写 GLFW 测试程序。也希望本指南已经或将帮助一些在未来像我昨天今天一样挣扎的人!
顺便说一句,所有标签都是我在 stackoverflow 上搜索的内容,以寻找不存在的答案。 (直到现在。)如果你和我处于类似的位置,希望它们是你所搜索的。
作者注:
这可能不是一个好主意。这种方法(使用 sudo make install)可能对您的系统有害。 (请参阅不要破坏 Debian)
理想情况下,我或其他人应该提出一个解决方案,它不仅仅将 lib 文件等安装到系统默认目录中,因为这些应该由包管理器(例如 apt
)管理,这样做可能导致冲突并破坏您的包管理系统。
请参阅新的“2020 年答案”以获取替代解决方案。
关于linux - 如何构建和安装 GLFW 3 并在 Linux 项目中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17768008/