我最近买了这本书:增强现实:实用指南。它有示例代码,据说可以在 Windows、MacOS 和 Linux 上运行。
但我无法让二进制文件运行。有人有这本书和可以在 Ubuntu 上运行的二进制文件吗?
我也不知道如何在 Ubuntu 中编译示例。我该怎么做?
这是它说要做的事情:
为 Linux 编译
令人耳目一新的是,本章中的程序无需进行任何更改即可在 Linux 上编译,但与 Windows 一样,您首先必须找到您的 GL 和 GLUT 文件。这可能意味着您必须为您的机器下载正确版本的 GLUT。
您需要链接 GL、GLU 和 GLUT 库,并提供 GLUT 头文件及其包含的文件的路径。查看目录下是否有glut.h文件
/usr/include/GL
;否则,在别处寻找它——您可以使用该命令find / -name "glut.h"
来搜索您的整个机器,或者您可以使用定位命令 (locate glut.h
)。您可能需要自定义路径,但这里是编译命令的示例:
$ gcc -o opengl_template opengl_template.cpp -I /usr/include/GL -I \
/usr/include -lGL -lGLU -lglut
gcc 是一个 C/C++ 编译器,应该存在于您的 Linux 或 Unix 机器上。命令行
-I /usr/include/GL
参数告诉 gcc 查找/usr/include/GL
包含文件。在这种情况下,您会找到 glut.h 及其包含的内容。当使用 gcc 链接库时,您使用-lX
开关,其中 X 是您的库的名称,并且libX.a
在您的路径中的某处有一个相应的文件。对于此示例,您希望链接库文件libGL.a
、libGLU.a
和libglut.a
,因此您将使用 gcc 参数-lGL -lGLU -lglut
。这三个文件位于默认目录/usr/lib/
中,因此您无需像使用 glut.h 那样指定它们的位置。如果确实需要指定库路径,则将 -L 添加到路径中。要运行已编译的程序,请键入,
./opengl_template
或者,如果当前目录在您的 shell 的路径中,则只需opengl_template
.在 Linux 中工作时,重要的是要知道您可能需要将纹理文件保持在最大 256 x 256 像素或找到系统中的设置来提高此限制。OpenGL 程序通常可以在 Windows 中运行,但在 Linux 中会生成空白的白色纹理,直到纹理尺寸减小。
上述说明对我来说毫无意义。我必须使用 gcc 编译还是可以使用 Eclipse?
如果我使用 Eclipse 或 gcc,我需要做什么来编译和运行程序?