2011-01-06 76 views
0

我試圖編譯XJig(http://sourceforge.net/projects/xjig/)雪豹和得到錯誤:我怎麼編譯XJig雪豹

make 
c++ -m32 -DUSE_MIT_SHM -DJIG_DEFAULT=\"/usr/lib/games/xjig/tina.gif\" -c xjig.C -o               
xjig.o 
xjig.C:161: warning: deprecated conversion from string constant to ‘char*’ 
xjig.C: In function ‘int main(int, char**)’: 
xjig.C:527: warning: deprecated conversion from string constant to ‘char*’ 
xjig.C:527: warning: deprecated conversion from string constant to ‘char*’ 
xjig.C:527: warning: deprecated conversion from string constant to ‘char*’ 
xjig.C:720: warning: format not a string literal and no format arguments 
c++ -m32 -DUSE_MIT_SHM -c -o objects.o objects.C 
c++ -m32 -DUSE_MIT_SHM -c -o stack.o stack.C 
c++ -m32 -DUSE_MIT_SHM -c -o imgbuff.o imgbuff.C 
c++ -m32 -DUSE_MIT_SHM -c -o puzzle.o puzzle.C 
c++ -m32 -DUSE_MIT_SHM -c -o real.o real.C 
c++ -m32 -DUSE_MIT_SHM -c -o vec2.o vec2.C 
c++ -m32 -DUSE_MIT_SHM -c -o vec2list.o vec2list.C 
c++ -m32 -DUSE_MIT_SHM -c -o mat2.o mat2.C 
c++ -m32 -DUSE_MIT_SHM -c -o color_mapper.o color_mapper.C 
c++ -m32 -DUSE_MIT_SHM -c -o base_image.o base_image.C 
c++ -m32 -DUSE_MIT_SHM -c -o gif_image.o gif_image.C 
c++ -m32 -DUSE_MIT_SHM -c -o ximage.o ximage.C 
c++ -m32 -DUSE_MIT_SHM -c -o ppm_image.o ppm_image.C 
In file included from ppm_image.C:6: 
/usr/local/include/ppmcmap.h:110: 
error: expected declaration before ‘}’ token 
make: *** [ppm_image.o] Error 1 

據抱怨extern'C'包含在頭文件的頂部,但我的理解是C++編譯器應該理解這一點。

我應該在Xcode中製作一個項目並在那裏編譯它嗎?我在編譯C源代碼方面知識很少,但希望能夠實現這一點。

我會準備付錢讓這個工作。

謝謝!

UPDATE

源被更新爲2.5.4,並修復了錯誤,但現在我越來越:

make 
c++ -m32 -DUSE_MIT_SHM -DJIG_DEFAULT=\"/usr/lib/games/xjig/tina.gif\" -c xjig.C -o xjig.o 
c++ -m32 -DUSE_MIT_SHM -c -o objects.o objects.C 
c++ -m32 -DUSE_MIT_SHM -c -o stack.o stack.C 
c++ -m32 -DUSE_MIT_SHM -c -o imgbuff.o imgbuff.C 
c++ -m32 -DUSE_MIT_SHM -c -o puzzle.o puzzle.C 
c++ -m32 -DUSE_MIT_SHM -c -o real.o real.C 
c++ -m32 -DUSE_MIT_SHM -c -o vec2.o vec2.C 
c++ -m32 -DUSE_MIT_SHM -c -o vec2list.o vec2list.C 
c++ -m32 -DUSE_MIT_SHM -c -o mat2.o mat2.C 
c++ -m32 -DUSE_MIT_SHM -c -o color_mapper.o color_mapper.C 
c++ -m32 -DUSE_MIT_SHM -c -o base_image.o base_image.C 
c++ -m32 -DUSE_MIT_SHM -c -o gif_image.o gif_image.C 
c++ -m32 -DUSE_MIT_SHM -c -o ximage.o ximage.C 
c++ -m32 -DUSE_MIT_SHM -c -o jpeg_image.o jpeg_image.C 
rm -f xjig 
c++ -m32 -o xjig xjig.o objects.o stack.o imgbuff.o puzzle.o      real.o vec2.o vec2list.o mat2.o      color_mapper.o base_image.o gif_image.o ximage.o      jpeg_image.o -g -O2 -fno-strict-aliasing  -lXext -lX11 -ljpeg -lnetpbm -lm  
ld: library not found for -lXext 
+0

xjig的哪個版本爲http://sourceforge.net/projects/xjig/develop暗示2-5.3有這個錯誤 – Mark 2011-01-06 18:46:07

+0

好點 - 有人在2個小時前修正了它。但是現在我又遇到了另外一個錯誤 - 我將更新 – codecowboy 2011-01-06 19:04:35

回答

0

的「有人」是誰定是我。我第一次發佈後,我衝了一個固定。 再次下載(2.5.4-1)我錯過了幾個舊ppm的參考文獻,這些錯誤僅在新版本中顯示。它現在應該編譯好了。

如果仍有問題,請直接與我聯繫。

關於make文件。 make文件由imake在初始構建時創建。

您可以使用附帶的使用文件的的Linux大多數版本,但你應該做使用imake的文件:XMKMF,使依賴,使

萊斯哈迪www.xjigmanager.com

0

只是關於Makefile的一個註釋。

你應該不是編輯Makefile。

使用了imake(XMKMF)

了Imake是配置X Window系統及其組件的不同平臺的工具。 它與您的X11安裝。 imake的命令是xmkmf。

運行'xmkmf'時,它會在當前目錄中查找名爲'Imakefile'的文件,並生成'Makefile'。

因此,要爲您的系統創建makefile,請編輯Imakefile,然後在xjig源文件夾中運行xmkmf

然後做 '化妝取決於', '使', '須藤使安裝'。

希望這有助於

萊斯哈迪

0

更新到我的最後一個職位。

我沒有一個mac,所以我借用了一個帶有老虎的mac來測試。

對Imakefile進行了一些更改後,我成功編譯了xjig並安裝了它,並且它運行正常。

最新版本現在是2.5.4-2,我已經上傳到xjigmanager.com和sourceforge.net/projects/xjig/

缺點是,因爲xjigmanager在Gambas中運行,它不能運行在mac上,你必須在xterm中使用xjig。