如何解决试图编译我的第一个opengl / mesa应用程序
| 我正在尝试编译我的第一个程序openGL应用程序。 这是我的代码:#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
using namespace std;
int main(int argc,char** argv) {
glutInit(&argc,argv);
return 0;
}
然后,我将ѭ1链接到该项目。
当我尝试编译时,出现此错误:
\"/usr/bin/make\" -f nbproject/Makefile-Debug.mk QMAKE= SUBPROJECTS= .build-conf
make[1]: Entering directory `/home/tirengarfio/programacion/3Ded\'
\"/usr/bin/make\" -f nbproject/Makefile-Debug.mk dist/Debug/GNU-Linux-x86/3ded
make[2]: Entering directory `/home/tirengarfio/programacion/3Ded\'
mkdir -p build/Debug/GNU-Linux-x86
rm -f build/Debug/GNU-Linux-x86/main.o.d
g++ -c -g -MMD -MP -MF build/Debug/GNU-Linux-x86/main.o.d -o build/Debug/GNU-Linux-x86/main.o main.cpp
mkdir -p dist/Debug/GNU-Linux-x86
g++ -o dist/Debug/GNU-Linux-x86/3ded build/Debug/GNU-Linux-x86/main.o /usr/lib/libglut.a
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `fghGetWindowProperty\':
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `fghGetAtom\':
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `glutInit\':
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `glutInit\':
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `glutInit\':
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `glutInit\':
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `glutInit\':
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `glutInit\':
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `glutInit\':
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `glutInit\':
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `glutInit\':
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `fgDeinitialize\':
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `fgDeinitialize\':
/usr/lib/libglut.a(libglut_la-freeglut_init.o): In function `fgDeinitialize\':
/usr/lib/libglut.a(libglut_la-freeglut_main.o): In function `fghcbDisplayWindow\':
/usr/lib/libglut.a(libglut_la-freeglut_main.o): In function `fghcbDisplayWindow\':
/usr/lib/libglut.a(libglut_la-freeglut_main.o): In function `fghcbDisplayWindow\':
/usr/lib/libglut.a(libglut_la-freeglut_main.o): In function `glutMainLoopEvent\':
/usr/lib/libglut.a(libglut_la-freeglut_main.o): In function `glutMainLoopEvent\':
/usr/lib/libglut.a(libglut_la-freeglut_main.o): In function `glutMainLoopEvent\':
/usr/lib/libglut.a(libglut_la-freeglut_main.o): In function `glutMainLoopEvent\':
/usr/lib/libglut.a(libglut_la-freeglut_main.o): In function `glutMainLoopEvent\':
/usr/lib/libglut.a(libglut_la-freeglut_main.o): In function `glutMainLoopEvent\':
/usr/lib/libglut.a(libglut_la-freeglut_main.o): In function `glutMainLoop\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fghGetVMaxExtent\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o):(.text+0xf93): more undefined references to `glVertex2i\' follow
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
make[2]: Leaving directory `/home/tirengarfio/programacion/3Ded\'
make[1]: Leaving directory `/home/tirengarfio/programacion/3Ded\'
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o):(.text+0x1043): more undefined references to `glVertex2i\' follow
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_menu.o): In function `fgDisplayMenu\':
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `fghGetConfig\':
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutGetModeValues\':
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutGetModeValues\':
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutGetModeValues\':
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutDeviceGet\':
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutGet\':
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutGet\':
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutGet\':
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutGet\':
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutGet\':
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutGet\':
/usr/lib/libglut.a(libglut_la-freeglut_state.o): In function `glutGet\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `toggle_fullscreen\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `toggle_fullscreen\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `toggle_fullscreen\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutPopWindow\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutPushWindow\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutPositionWindow\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutSetIconTitle\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutSetIconTitle\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutSetWindowTitle\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutSetWindowTitle\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutIconifyWindow\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutIconifyWindow\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutHideWindow\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutHideWindow\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutHideWindow\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutShowWindow\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `glutShowWindow\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `fgCloseWindow\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `fgCloseWindow\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `fgCloseWindow\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `fghCreateNewContext\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `fgSetWindow\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `fgChooseFBConfig\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `fgChooseFBConfig\':
/usr/lib/libglut.a(libglut_la-freeglut_window.o): In function `fgChooseFBConfig\':
...
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/GNU-Linux-x86/3ded] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
BUILD FAILED (exit value 2,total time: 1s)
任何想法?
Ubuntu 10.04 / Netbeans 6.9.1
解决方法
假设您已在系统上安装了所有共享库,并获得了C源代码:
gcc hello.c -o hello -lGL -lglut -lGLU
对于C ++代码:
g++ hello.cpp -o hello -lGL -lglut -lGLU
如果确实不需要,请不要使用静态库文件。否则,您将不得不自己满足这些依赖性。
, 线索在这里:
more undefined references to \'glVertex2i\' follow
基本上,您还需要链接到OpenGL库(glVertex2i是OpenGL函数),glut不提供OpenGL函数,只有附加功能才能使生活变得轻松。
尝试将-lGL添加到命令行(最后)。
编辑:这仅适用于静态版本(/usr/lib/libglut.a)。共享库版本知道如何找到libGL,因此您可以简单地使用-lglut而不是/usr/lib/libglut.a。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。