我最近买了这本书:Augmented Reality: A Practical Guide。它有示例代码,它说在Windows,MacOS和Linux上运行。
但我不能让二进制文件运行。有没有人有这本书和二进制文件在Ubuntu上运行?
我也无法弄清楚如何在Ubuntu中编译示例。我该怎么做?
以下是它要做的事情:
为Linux编译
令人耳目一新的是,在此过程中无需进行任何更改 为Linux编译的章节,但与Windows一样,您首先必须这样做 找到你的GL和GLUT文件。这可能意味着您必须下载 适用于您机器的正确版本的GLUT。
您需要链接GL,GLU和GLUT库并提供路径 到GLUT头文件及其包含的文件。看看是否有
/usr/include/GL
目录中的glut.h文件;不然,看 在其他地方 - 你可以使用命令find / -name "glut.h"
来 搜索整个计算机,或者您可以使用locate命令(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,我需要做什么来编译和运行程序?
答案 0 :(得分: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库的所有内容。你应该已经拥有它们了。
祝你好运!