compiler-construction - 可以修改 TCC 以使用 Emscripten 编译吗?如果没有,我在哪里可以找到可以生成 x86 的 C 编译器?

标签 compiler-construction posix ansi emscripten tcc

解压缩 tcc-0.9.26 后,我编辑配置以指向 emcc 而不是 gccemar 而不是 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/

相关文章:

c - 如何处理 stat 和后续 mmap 之间的文件大小变化?

c - 使用 ANSI C 将二进制图像数据从数据库中提取到 .jpg 文件中

c++ - 通过指针调用虚函数,有或没有咨询 VM 表

c++ - 编译时如何(以指数方式)比运行时快?

class - 将域对象传递到服务中以创建数据-类现在发现错误?

c - yylineno 在 yacc 文件中始终具有相同的值

c++ - Linux socket read() 无法正确读取响应体

c - `read()` 使用什么返回值?

c - C骑士团之旅数量

c++ - 在两个单独的 cpp 文件中定义的内联函数是否可以在链接期间创建重复的符号?