Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何为雪豹编译XJig?_C++_Xcode_Osx Snow Leopard - Fatal编程技术网

C++ 如何为雪豹编译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

我正在尝试为雪豹编译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文件是由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-就行了