Compiler construction LLVM和Yices接口?

Compiler construction LLVM和Yices接口?,compiler-construction,llvm,smt,Compiler Construction,Llvm,Smt,我想从llvm的可加载模块调用yices。我用-lyices编译。尽管编译没有报告任何错误,但在运行时llvm模块无法找到yices符号 当您说“从LLVM的可加载模块调用”时,您的意思是使用ExecutionEngine::getPointerToFunction 请注意,此调用相当于当前进程上的dlsym,因此它将只查找实际编译到可执行文件中的符号。您可以检查(例如,使用readelf)是否确实如此。如果您没有在任何地方使用该库(但仅尝试以JIT方式加载),则该符号很可能已删除引用。因此,您

我想从llvm的可加载模块调用yices。我用-lyices编译。尽管编译没有报告任何错误,但在运行时llvm模块无法找到yices符号

当您说“从LLVM的可加载模块调用”时,您的意思是使用
ExecutionEngine::getPointerToFunction


请注意,此调用相当于当前进程上的
dlsym
,因此它将只查找实际编译到可执行文件中的符号。您可以检查(例如,使用
readelf
)是否确实如此。如果您没有在任何地方使用该库(但仅尝试以JIT方式加载),则该符号很可能已删除引用。因此,您必须创建虚拟引用或使用链接器脚本/选项来强制链接库的所有符号,即使在编译时没有看到任何内容来访问它们。

No。通过从llvm调用,我的意思是从LLvm的某个函数Pass的runOnFunction调用yices的c_API。@ari:那么你似乎有一个简单的链接问题,与LLvm无关