2012-06-11 77 views
2

我試圖從sourceforge運行someone else's (4 year old) code。我下載了cygwin並使用CVS檢出了該項目。如何鏈接cygwin中的glut32?

這裏是compile線,失敗:

gcc ../block_display/block_display.c -o block_display -lopengl32 -lglut32 -lm 

下面是相關包括block_display.c聲明:

#include <GL/glut.h> 

當我試圖運行上面的編譯行,我得到這個編譯錯誤:

$ gcc ../block_display/block_display.c -o block_display -lopengl32 -lglut32 -lm 
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -lglut32 
collect2: ld returned 1 exit status 

我承認我是新/生鏽的與cygwin。我嘗試了幾件事情來達到這一點,但由於我不完全知道把文件放在哪裏,所以我陷入了這個錯誤。這是我曾嘗試:

  1. 用於下載Cygwin中設置 '過剩' 的所有結果:libglut函數-devel的,freeglut,libglut3
  2. 下載glut 3.7.6,複製要將glut32.dll到C:\ WINDOWS \ SysWOW64中,和將glut.h複製到C:\ cygwin \ usr \ include。我仍然有glut.def和glut32.lib,但我不知道在哪裏放置它們。我試過this install guide,但由於我沒有運行VC++,我不知道VC++路徑的cygwin等價物是什麼。

任何想法我能做些什麼來讓這段代碼編譯成功?我正在運行Windows 7 64位。

回答

1

您應該改用freeglut。原來的過剩遠遠落後。另一方面Freeglut是二進制和源代碼兼容的原始過剩,它也是開源的。

由於glut32.dll是一個Windows DLL,cygwin是用於模擬Windows上的unix環境,因此無法從源代碼重新編譯,而無法輕鬆使用cygwin的原始大量內容。

+0

這不是我的代碼,所以我的偏好是不做任何更改,因爲我試圖驗證它是正在工作的代碼,因爲它目前存在。我需要做些什麼改變才能讓代碼使用freeglut?它是否具有相同的API?我需要使用不同的-l參數嗎?我是否需要更改包含語句? – BennyMcBenBen

+0

freeglut被設計爲替代過剩的下降,所以你不應該改變任何代碼。 – Mark

+0

我將編譯行更改爲這樣,所有內容都按照您的說法工作:gcc ../block_display/block_display.c -o block_display -lopengl32 -lGL -lglut -lm – BennyMcBenBen