如何为Snow Leopard编译XJig?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为Snow Leopard编译XJig?相关的知识,希望对你有一定的参考价值。
我正在尝试为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
修理它的'某人'就是我。你第一次发帖后我赶紧修了一下。再次下载。(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。
以上是关于如何为Snow Leopard编译XJig?的主要内容,如果未能解决你的问题,请参考以下文章
NSToolbar 在 Leopard 和 Snow Leopard 中看起来不同
如何为 Leopard 下载适用于 iPhone 的 SDK?
如何将 Leopard 和 Snow Leopard 支持添加到 Lion Cocoa 应用程序?
如何在 Mac OS X Snow Leopard 上启用 mysqli?