代码之家  ›  专栏  ›  技术社区  ›  phimuemue

g++链接器:/usr/lib/libgl.so.1:无法读取符号:无效操作

  •  10
  • phimuemue  · 技术社区  · 15 年前

    我正在尝试在Ubuntu10.04下构建一个非常简单的OpenGL应用程序(我有一个32位系统)。

    当我试图编译文件时,我收到错误消息:

    g++ -L/usr/lib simple.cpp -lglut
    /usr/bin/ld: /tmp/ccoPczAo.o: undefined reference to symbol 'glEnd'
    /usr/bin/ld: note: 'glEnd' is defined in DSO //usr/lib/libGL.so.1 so try adding it to the linker command line
    //usr/lib/libGL.so.1: could not read symbols: Invalid operation
    collect2: ld returned 1 exit status
    

    有人知道我做错了什么吗?

    2 回复  |  直到 12 年前
        1
  •  16
  •   jcoder    15 年前

    您需要在命令行中包括OpenGL库和GLUT库/。 尝试在命令行末尾添加-lgl

    g++ -L/usr/lib simple.cpp -lglut -lGL
    
        2
  •  1
  •   mifthi    12 年前

    编译用

    g++ main.cpp -o main.bin -lGL -lGLU -lglut
    

    或者尝试以下生成文件 OpenGL primer 它非常紧凑。 这个帮助我运行了Hello World OpenGL。 多亏了 OpenGL Primer

    CC = g++
    SRC = main.cpp imageloader.cpp
    LIBS = -lGL -lGLU -lglut
    EXEC = cube.bin
    
    all:
           $(CC) $(SRC) -o $(EXEC) $(LIBS)
    
    clean:
           rm -rf $(EXEC) *~
    
    推荐文章