解压缩 tcc-0.9.26
后,我编辑配置以指向 emcc
而不是 gcc
和 emar
而不是 ar
。接下来,我取消注释 tcc.h
中包含的 ucontext
,因为它似乎只在 tccrun
中需要。现在我禁用了 lib/libtcc1.c
中的所有内置函数(sub_ddmmss 等),但是我得到了一个错误,因为 Emscripten 试图编译一个程序集源文件(alloca 的一个实现),而我没有不知道如何解决这个问题。
最佳答案
汇编中实现的功能更为基础,并且是 tcc 所必需的。它们不是可选的,因为您可以使用定义或注释删除它们。您当然可以修改 tcc 本身而不使用它们,但您必须提供您删除的功能的实现。因此,使用非 gcc/clang 编译器编译 tcc 的唯一方法是对其进行重大修改或重新实现汇编函数。
关于compiler-construction - 可以修改 TCC 以使用 Emscripten 编译吗?如果没有,我在哪里可以找到可以生成 x86 的 C 编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16418669/