LLVM 对 llvm::createDemoteRegisterToMemoryPass 的未定义引用

LLVM undefined reference to llvm::createDemoteRegisterToMemoryPass

我正在研究 OLLVM (https://github.com/obfuscator-llvm/obfuscator),这是一个基于 LLVM 的混淆项目。尝试在我自己的传递中使用 reg2mem 传递时,我收到上面的错误消息。代码就像打击一样。

struct MyPass : public FunctionPass {
    static char ID;
    MyPass():FunctionPass(ID) {}
    bool runOnFunction(Function &F);
};

bool MyPass::runOnFunction(Function &F) {
    FunctionPass *regPass = createDemoteRegisterToMemoryPass();
    regPass->runOnFunction(F);
    return false;
}  

我按照 github wiki 上的说明构建了整个项目。
如果有人能帮助我,我将不胜感激。

在文件 lib/Transforms/Obfuscation/LLVMBuild.txt 中添加以下行:

required_libraries = 标量

或者如果您已经在该文件中包含 required_libraries,只需在白色 space

之后将 Scalar 添加到库中