C++ 如何为雪豹编译XJig?
我正在尝试为雪豹编译XJig(),但出现了以下错误:C++ 如何为雪豹编译XJig?,c++,xcode,osx-snow-leopard,C++,Xcode,Osx Snow Leopard,我正在尝试为雪豹编译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 ‘ch
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文件是由imake在初始生成时创建的 您可以将提供的make文件用于大多数版本的Linux,但您应该通过以下操作使用imake文件:xmkmf、make depend、make 只是一个关于Makefile的注释。 您应该而不是编辑生成文件 使用imake(xmkmf) Imake是为不同平台配置X Window系统及其组件的工具。它与您的X11安装一起提供。imake的命令是xmkmf。 运行“xmkmf”时,它会在当前目录中查找名为“Imakefile”的文件,并生成一个“Makefile” 因此,要为系统创建makefile,您需要编辑Imakefile,然后在xjig源文件夹中运行xmkmf 然后执行“makedependent”、“make”、“sudomakeinstall” 更新到我的上一篇文章 我没有mac电脑,所以我借了一台上面有tiger的mac电脑来测试 在对Imakefile做了一些更改之后,我成功地编译并安装了xjig,它运行正常 最新版本现在是2.5.4-2,我已经将其上传到xjigmanager.com和sourceforge.net/projects/xjig/
缺点是,由于xjigmanager在gambas中运行,而gambas无法在mac上运行,因此您必须在xterm中使用xjig。xjig的哪个版本(如2-5.3所示)存在此错误好点-有人在2小时前修复了它。但是我现在遇到了另一个错误——我将更新问题lXext在Snow Leopard上不起作用,因此我认为我需要创建一个新的makefile和/或在XCode中编译。问题是我不知道怎么做。有人知道学习这个的好资源吗?我发现苹果的文档非常简洁,因为它假定了我所不具备的知识水平。只要试着编辑makefile来删除-lXext-就行了