2013-03-05 3 views
2

Я скачал Gforth 0.7.0 с официального сайта, разместив папку в /Applications и разместив ее псевдоним в /usr/local/bin. После компиляции с помощью:Проблемы с компиляцией Gforth на Mac

$ sudo -s 
$ ./configure 
$ make 

Когда making, он получает результат:

cd engine && make gforth-ditc-noll OPT=-noll OPTDEFINES= OPTOBJECTS=dblsub.o 
cd .. && CONFIG_FILES=stamp-h CONFIG_HEADERS=engine/config.h ./config.status 
config.status: creating stamp-h 
config.status: creating engine/config.h 
config.status: engine/config.h is unchanged 
config.status: executing stamp-h commands 
echo timestamp > stamp-h 
cp -p engine/gforth-ditc-noll gforth-ditc 
true 
cd engine && make gforth-itc-noll OPT=-noll OPTDEFINES= OPTOBJECTS=dblsub.o 
make[1]: `gforth-itc-noll' is up to date. 
cp -p engine/gforth-itc-noll gforth-itc 
true 
./preforth -p ".:~+:." -e 's" mach16b.fs"' ./kernel/main.fs -e "save-cross kernl16b.fi- /usr/local/bin/gforth-0.7.0 bye" 


Segmentation fault: 11. 
make: *** [kernl16b.fi-] Error 139 
bash-3.2# ./preforth 


Segmentation fault: 11. 

Я понятия не имею, что здесь не так. Я пробовал the answer to Stack Overflow question Compiling Gforth without Gforth?, но это тоже не сработало. Я бегу Mac   OS   X   v10.8 (Горный лев) на MacBook Air.

ответ

2

Ничего, я решил. Я просто использовал Homebrew и сделал

brew install gforth 

и это сработало! Это безумие сработало! Я не могу поверить, что не думал об этом после двух дней попыток ...

+1

Это не то же самое, что компилировать его самостоятельно. «Пивоварение» дает вам самую последнюю версию? Получение исполняемых вещей обычно проще и нормально, но тем не менее это никому не поможет: причина, по которой вы получаете seg-ошибку, будет «скрыта» где-то и может повлиять на любого другого человека, пытающегося получить gforth, скомпилированного и не «сваренного» ... – ShinTakezou

+2

Проблема с gforth - это курица-яйцо: вам нужна рабочая версия gforth (например, bootstrap), чтобы скомпилировать новую версию. В вашей первоначальной попытке собрать gforth * bootstrap * (то есть preforth) явно не предназначался для работы в вашей системе, следовательно, segfault. Так что да, нужно «варить» перед компиляцией;) – wldsvc