在 Linux 上使用 GLUT 静态编译的 C++

Posted

技术标签:

【中文标题】在 Linux 上使用 GLUT 静态编译的 C++【英文标题】:C++ with GLUT static compile on linux 【发布时间】:2015-12-05 17:47:05 【问题描述】:

我正在尝试将简单的程序编译为独立的可执行文件,以便将其发送给我的朋友。但我正面临 GLUT 依赖的问题。我试过的命令是:

g++ triangle.cpp -static -lglut -lGLU -lGL -lm

我得到了这个错误:

/usr/bin/ld: cannot find -lGL
collect2: error: ld returned 1 exit status

当我尝试使用 Mingw64 时,我得到了这个:

    i686-w64-mingw32-g++ triangle.cpp -static -lglut -lGLU -lGL -lm -o test.exe

    triangle.cpp:9:21: fatal error: GL/glut.h: No such file or directory
 #include <GL/glut.h>
                     ^
compilation terminated.

我的包括

#include <vector>
#include <cstdio>
#include <GL/glut.h>
#include <math.h>
#include <string>
#include <sstream>

【问题讨论】:

您必须告诉编译器在哪里可以找到头文件(通常是-I 选项)和链接器在哪里可以找到库(通常是-L 选项)。 你能告诉我具体是怎么做的吗? 阅读编译器的文档。首先查找我提到的两个选项。 a 这样做了:g++ triangle.cpp -static -L /usr/include/GL/glut.h -L /usr/include/GL/glu.h -lm -L /usr/include/GL/gl.h,我给了我很多未定义的参考错误。例如triangle.cpp:(.text+0x79b): undefined reference to glClear'` 【参考方案1】:
/usr/bin/ld: cannot find -lGL
collect2: error: ld returned 1 exit status

您似乎没有安装 GLUT 库。 对于有 aptitude 的 GNU linux,请尝试

apt-get update
apt-cache search freeglut

获取包含 freeglut 的所有库的列表。 我认为(不完全确定)您需要安装 freeglut3-dev

【讨论】:

以上是关于在 Linux 上使用 GLUT 静态编译的 C++的主要内容,如果未能解决你的问题,请参考以下文章

如何在 osx 上使用 waf 链接 opengl 和 glut?

Linux——C库

(解决追加200分)在ubuntu上怎么安装openGL??

在 linux 终端上使用 c++ 编译示例 opengl 应用程序

linux 下C标准库是动态库还是静态库,还是两种库都提供了?

C基础-库基础