1

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 に関連していますが、追加のライブラリを含める必要があるかどうかはまだわかりません。

4

2 に答える 2

0

閉じられなくて申し訳ありませんが、Linuxネットブックを起動して動作させました。

-lfltk -lfltk_gl -lGLU -lGL -lXext -lX11 -lm
于 2009-11-13T17:50:27.770 に答える
0

推測ですが、makefile は Linux 用に書かれており、Cygwin ではいくつかのライブラリが見つからないか、別の場所にあります。メイクファイルを調べて、不足しているライブラリを見つけ、ライブラリをメイクファイルが期待する場所に移動するか、メイクファイルを変更して正しい場所に配置する必要があります。

必要なライブラリは、最初の行にリストされています(フラグg++の後の名前に「lib」を追加します)。-l

于 2009-11-12T02:47:38.320 に答える