如何为Snow Leopard编译XJig?

问题描述 投票:0回答:1

我正在尝试为Snow Leopard编译XJig(http://sourceforge.net/projects/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

它抱怨外部'C'包含在头文件的顶部,但我的理解是c ++编译器应该理解这一点。

我应该在Xcode中制作一个项目并在那里进行编译吗?我在编译C源代码方面知之甚少,但希望能够实现这一点。

更新

源已更新为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
c++ xcode osx-snow-leopard
1个回答
0
投票

修理它的'某人'就是我。你第一次发帖后我赶紧修了一下。再次下载。(2.5.4-1)我错过了几个对旧ppm内容的引用,错误只显示在新版本上。它现在应该编译好了。

如果您仍有问题,请直接与我联系。

关于make文件。 make文件由imake在初始构建时创建。

您可以在大多数Linux版本中使用提供的make文件,但您应该使用imake文件:xmkmf,make depend,make。

只是关于Makefile的说明。

您不应该编辑Makefile。

使用imake(xmkmf)

Imake是一个用于为不同平台配置X Window系统及其组件的工具。它随X11安装而来。 imake的命令是xmkmf。

运行'xmkmf'时,它会在当前目录中查找名为'Imakefile'的文件,并生成'Makefile'。

因此,要为系统创建makefile,请编辑Imakefile,然后在xjig源文件夹中运行xmkmf。

然后做'make depend','make','sudo make install'。

更新到我的上一篇文章。

我没有mac,所以我借了一个带有老虎的mac来测试。

在对Imakefile进行了一些更改之后,我成功编译了xjig并安装了它,它运行正常。

最新版本现在是2.5.4-2,我已将其上传到xjigmanager.com和sourceforge.net/projects/xjig/

缺点是因为xjigmanager在gambas中运行,而不能在mac上运行,所以你必须在xterm中使用xjig。

© www.soinside.com 2019 - 2024. All rights reserved.