2

我最近买了这本书:增强现实:实用指南。它有示例代码,据说可以在 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.alibGLU.alibglut.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,我需要做什么来编译和运行程序?

4

1 回答 1

0

如果你愿意,你可以使用 eclipse,但它应该没有区别。

Eclipse 只是一个 IDE,即一个漂亮的 GUI,它知道如何与编译器交互。

命令:

gcc -o opengl_template opengl_template.cpp -I /usr/include/GL -I /usr/include -lGL -lGLU -lglut

应该从命令行工作。如果您希望可以设置一个 Eclipse 项目,该项目在编译时将调用完全相同的命令行。看起来您正在编译单个 CPP,包括 GL 标头,并与 GL、GLU 和 GLUT 链接。

它应该生成一个名为 opengl_template 的输出可执行文件

我没有在 Ubuntu 上编译过它,但它不应该有那么不同。您可以忽略所有需要查找 GL 库的内容。你应该已经拥有它们了。

祝你好运!

于 2009-12-08T23:32:35.713 回答