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

使用Eclipse的Cygwin中的FLTK(链接错误)

  •  1
  • qpingu  · 技术社区  · 16 年前

    我的任务到期,需要使用FLTK。代码是给我们的,应该直接编译,但我有链接错误,不知道需要包含哪些其他库。

    我目前有“opengl32”、“fltk_gl”、“glu32”和“fltk”(-l),它们似乎都减少了错误的数量。我使用make编译FLTK,没有指定选项。包含所有生成的库文件并不能解决问题,我确信这只是一些Windows特定的问题。

    编译日志:

    **** Build of configuration Debug for project CG5 ****
    
    make all 
    Building target: CG5.exe
    Invoking: Cygwin C++ Linker
    g++  -o"CG5.exe"  ./src/draw_routines.o ./src/gl_window.o ./src/my_shapes.o ./src/shape.o ./src/shapes_ui.o ./src/tesselation.o   -lopengl32 -lfltk_z -lfltk_gl -lglu32 -lfltk
    /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libfltk_gl.a(Fl_Gl_Window.o):Fl_Gl_Window.cxx:(.text+0x197): undefined reference to `_SelectPalette@12'
    /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libfltk_gl.a(Fl_Gl_Window.o):Fl_Gl_Window.cxx:(.text+0x1a7): undefined reference to `_RealizePalette@4'
    /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libfltk_gl.a(Fl_Gl_Window.o):Fl_Gl_Window.cxx:(.text+0x1fe): undefined reference to `_glDrawBuffer@4'
    /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libfltk_gl.a(Fl_Gl_Window.o):Fl_Gl_Window.cxx:(.text+0x20d): undefined reference to `_glReadBuffer@4'
    /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libfltk_gl.a(Fl_Gl_Window.o):Fl_Gl_Window.cxx:(.text+0x23a): undefined reference to `_glGetIntegerv@8'
    /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libfltk_gl.a(Fl_Gl_Window.o):Fl_Gl_Window.cxx:(.text+0x2c3): undefined reference to `_glOrtho@48'
    /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libfltk_gl.a(Fl_Gl_Window.o):Fl_Gl_Window.cxx:(.text+0x2f3): undefined reference to `_SwapBuffers@4'
    ...and lots more
    

    编辑:前几行显然与OpenGL相关,尽管我仍然不确定需要包括哪些附加库。

    2 回复  |  直到 16 年前
        1
  •  0
  •   Jim Garrison    16 年前

    它需要的库列在起始行上 g++ -l (国旗)

        2
  •  0
  •   qpingu    16 年前

    很抱歉没有结束,但我刚刚启动了我的Linux上网本并让它工作起来。

    -lfltk -lfltk_gl -lGLU -lGL -lXext -lX11 -lm