2010-03-05 97 views
4

当我尝试编译Gforth 0.7.0,我得到以下错误:没有Gforth编译Gforth?

$ ./configure 
$ make 
#compiling… 
Undefined symbols: 
    "_main", referenced from: 
     start in crt1.10.6.o 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 
make[3]: *** [gforth-ll] Error 1 
./preforth -p ".:~+:." -e 's" mach16b.fs"' ./kernel/main.fs -e "save-cross kernl16b.fi- /usr/local/bin/gforth-0.7.0 bye" 
You need to configure with a gforth in $PATH to build this part 
make[3]: *** [kernl16b.fi-] Error 1 
make[2]: *** [gforth-ll] Error 2 
make[1]: *** [optgforth] Error 2 
make: *** [gforth] Error 2 
[22:16:01] gforth-0.7.0$ 

通过港口安装时,我得到了同样的错误。我想象的问题是Gforth是至少部分以Forth编写的,那么如何在没有首先安装Gforth的情况下安装它(或者是其他问题)?

我使用的是Mac OS 10.6。

回答

6

在配置,我得到的消息:

... 
checking how to invoke m4... m4 -s 
checking for gforth... echo "You need to configure with a gforth in \$PATH to build this part" && false 
checking for ./arch/386/asm.fs... yes 
... 

我还发现,当我用普通GCC内置(在64位模式下),事物的编译过程中去可怕的错误(约误投诉指定的寄存器,我假设为汇编器插入)。但是,当我重新配置为:

CC="gcc -m32" ./configure --prefix=$HOME 

我仍然收到有关'gforth'的警告,但其余编译成功。安装过程中出现'chcon'不能正常工作的警告,但错误被忽略。

安装完毕后,我能键入:

Osiris-2 JL: gforth 
Gforth 0.7.0, Copyright (C) 1995-2008 Free Software Foundation, Inc. 
Gforth comes with ABSOLUTELY NO WARRANTY; for details type `license' 
Type `bye' to exit 
2 3 + ok 
. 5 ok 

Osiris-2 JL: uname -a 
Darwin Osiris-2.local 10.2.0 Darwin Kernel Version 10.2.0: Tue Nov 3 10:37:10 PST 2009; root:xnu-1486.2.11~1/RELEASE_I386 i386 
Osiris-2 JL: 
+0

我只要它已启动了运行时错误,但它通过一切再次去没有--prefix到'在./configure之后就走了',谢谢 – 2010-03-05 03:56:13