在Windows应用程序中,我正在对C++代码进行JIT编译。我使用的是LLVM / Clang 5.0,应用程序是使用MsVc 2015编译的。
虽然使用这两个工具链创建的DLL和可执行代码混合使用非常好,但我遇到了JIT编译的代码中不包括LLVM应该自动生成的变量(例如
虽然使用这两个工具链创建的DLL和可执行代码混合使用非常好,但我遇到了JIT编译的代码中不包括LLVM应该自动生成的变量(例如
??_7type_info@@6B@
和相关的内容,如\01??_R0H@8
)。它们仅被注册为外部变量,使用它们会导致应用程序崩溃。LLVM ERROR: Program used external function '??_7type_info@@6B@' which could not be resolved!
虽然我找到了将用户定义的变量添加到JIT代码中的示例,但我无法找到有效的解决方案来使JIT代码引用这些在幕后生成的内部变量。
我相信可以通过使用CLang编译的DLL并进行调整.ll
来提供缺失的变量,但我更希望有一个更清晰的解决方案,仅配置JIT-ter引擎即可。
请问有人能帮助我吗?