在OS X上编译TCC的问题

Aar*_*ugh 7 macos tcc

有没有人在OS X上成功编译过TCC

据我所知它应该是可能的但是当我运行make时我得到以下错误:

$ make
gcc -o tcc tcc.c -DTCC_TARGET_I386 -O2 -g -Wall -fno-strict-aliasing -mpreferred-stack-                boundary=2 -march=i386 -falign-functions=0 -Wno-pointer-sign -Wno-sign-compare -D_FORTIFY_SOURCE=0 -lm -ldl
tcc.c:1: error: CPU you selected does not support x86-64 instruction set
tcc.c:1: error: CPU you selected does not support x86-64 instruction set
tcc.c:1: error: -mpreferred-stack-boundary=2 is not between 4 and 12
make: *** [tcc] Error 1
Run Code Online (Sandbox Code Playgroud)

./configure 运行正常,并提供以下输出:

$ ./configure 
Binary  directory   /usr/local/bin
TinyCC directory    /usr/local/lib/tcc
Library directory   /usr/local/lib
Include directory   /usr/local/include
Manual directory    /usr/local/man
Doc directory       /usr/local/share/doc/tcc
Target root prefix  
Source path      /Users/aaron/Downloads/tcc-0.9.25
C compiler       gcc
CPU              x86
Big Endian       no
gprof enabled    no
cross compilers  no
use libgcc       no
Creating config.mak and config.h
Run Code Online (Sandbox Code Playgroud)

我很确定这个问题很简单,但我还没有在OS X上编译足够的程序来了解这些问题......

安装TCC的主要目的是获取libtcc所以我可以开始尝试从Ruby生成动态代码(如果有所不同:-p)

谢谢!

mik*_*jov 27

我刚刚花了一些时间试图让tcc在osx上运行.我已经包含了几个修复程序,包括上面的答案中的一个,现在它们都在http://repo.or.cz/w/tinycc.git的开发存储库中.构建,一些测试和所有示例都应该有效.

我不确定你是否知道,但是建立这个项目的Fabrice Bellard的http://bellard.org/tcc/网站并没有定期更新.主要是因为没有很多'官方'tcc发布.tcc是那些主要依赖于实时来源和更新的项目之一.所以,如果你想再试一次,请到http://repo.or.cz/w/tinycc.git获取'mob'分支(不是'master').有关详细信息,请参阅http://repo.or.cz/w/tinycc.git,并加入邮件列表以参与其中.


dmc*_*kee 4

我现在将整合我的评论。

似乎有几个问题。

  1. 自 Mac OS 10.5 起,x86 寄存器访问的命名方案发生了变化。请参阅在 OS X 上通过 ucontext 访问 EIP 和 EBP。这将需要破解源代码,直到可以说服维护者支持 Mac OS X。
  2. 支持的可执行格式tcc与 Mac OS X 本身运行的格式不重叠。然而,XBinary可以解决这个问题。(但是,我没有找到fink包或MacPorts包,而且还没有安装它。不确定我会不会——这是很深的魔法,理论上确实会做非常糟糕的事情。)啊。 ..这也已经存在:Possibility of load/executing ELF files on OSX