【发布时间】:2012-04-03 20:30:42
【问题描述】:
我在 Ubuntu 11.04 上编写了一个使用 freeglut 的程序。它工作得很好。然后我得到另一台计算机并尝试在全新安装的 Ubuntu 11.04 上运行该程序。不工作。所以我安装了
sudo apt-get install freeglut3 freeglut3-dev libglew1.5 libglew1.5-dev libglu1-mesa libglu1-mesa-dev libgl1-mesa-glx libgl1-mesa-dev mesa-common-dev gcc
并尝试运行导入的程序
#include <GL/freeglut.h>
#include <GL/gl.h>
#include <GL/glu.h>
使用命令
g++ -lGL -lGLU -lglut Driver.cpp -o a
但是链接器或其他任何形式的错误都像 200 一样:
Driver.cpp:(.text+0x3c6b): undefined reference to `glutSolidSphere'
Driver.cpp:(.text+0x3c75): undefined reference to `glEnable'
Driver.cpp:(.text+0x3c9a): undefined reference to `glColor4f'
Driver.cpp:(.text+0x3cb5): undefined reference to `glRotatef'
Driver.cpp:(.text+0x3d02): undefined reference to `glutSolidSphere'
Driver.cpp:(.text+0x3d07): undefined reference to `glutSwapBuffers'
问题的原因是什么?
【问题讨论】:
-
如果你用gcc编译,为什么你的源文件被命名为.cpp?如果是C++,则必须用g++编译,如果是C,则必须调用something.c。
-
帖子中的错字。我正在使用 g++
-
这个 Driver.cpp 是什么?您是从 program.cpp 中包含它吗?
-
尝试将库放在你的源文件在你的编译中。
-
帖子中的另一个错字。眼光敏锐。