Как я могу скомпилировать XJig для Snow Leopard? - PullRequest
0 голосов
/ 06 января 2011

Я пытаюсь скомпилировать XJig (http://sourceforge.net/projects/xjig/) для Snow Leopard и получаю ошибки:

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, но я хотел бы, чтобы это работало.

Обновление

Источник обновлен до 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

1 Ответ

0 голосов
/ 07 января 2011

«Кто-то», который исправил это, был я.Я поспешил исправить после вашей первой публикации.Перейдите и загрузите снова. (2.5.4-1) Я пропустил пару ссылок на старые вещи ppm, ошибки показывались только при новой сборке.Теперь он должен скомпилироваться нормально.

Если у вас все еще есть проблемы, свяжитесь со мной напрямую.

О файле make. Файл make создается imake при начальной сборке.

Вы можете использовать поставляемые файлы make с большинством версий Linux , но вы должны использовать файл imake, выполнив: xmkmf, make зависящий, make.

Просто примечание о Makefile.

Вы должны не редактировать Makefile.

Использовать imake (xmkmf)

Imake isинструмент для настройки X Window System и ее компонентов для разных платформ.Он пришел с вашей установкой X11.Команда для imake: xmkmf.

Когда вы запускаете 'xmkmf', он ищет файл с именем 'Imakefile' в текущем каталоге и создает 'Makefile'.

Итак, чтобы создать make-файл для вашей системы, вы редактируете Imakefile, а затем запускаете xmkmf в исходной папке xjig.

Затем выполните ' make зависимость ',' make ',' sudo make install '.

Обновление до моего последнего поста.

У меня нет Mac,поэтому я позаимствовал макинтош с тигром для тестирования.

После внесения нескольких изменений в Imakefile я успешно скомпилировал xjig и установил его, и он работает нормально.

Последнийверсия теперь 2.5.4-2, и я загрузил ее на xjigmanager.com и sourceforge.net/projects/xjig/

Недостатком является то, что xjigmanager работает в gambas, который не может работать на Mac,вы должны использовать xjig в xterm.

...