2010-05-05 60 views
3

我目前正在构建一个小的JIT编译器。 对于语言,我需要一些运行时库来处理一些特殊的数学函数。 我认为最好的方法是将lib编译为位码并将其链接起来。 编译器应该集成在产品中,因此它必须在windows(VC10,64位)下工作。LLVM:用于Windows的llvm-gcc(mingw)的bitcode

那么有可能用mingw构建数学库llvm-gcc稍后用JITed Code构建一个链接? 或者在使用mingw时使用llvm-gcc构建代码的可移植性方面是否存在任何问题? 如果有问题,你会建议什么解决方案?

回答

0

位码是可移植的格式(至少在相同的架构下);在Windows中生成的位码和在例如Linux或Cygwin中生成的位码之间没有区别。

+0

你确定吗? 我在FAQ中读到,位码不是平台无关的。 – SteffenG 2010-05-05 21:03:09

+0

这意味着你不能在你的X86系统上使用ARM的位码,或者在X86/32上使用X86/64的位码(不同大小的长整数/整数,其他调用约定,不同的结构对齐等) 另外,他们对包含文件不同。只要你只使用标准C中存在的win32和数学函数(没有特定的cygwin),你就可以安全。 – wump 2010-05-05 22:55:31