吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 279|回复: 0
收起左侧

[求助] 使用llvm opt工具加载pass的时候报错undefined symbol: _ZTIN4llvm12FunctionPassE

[复制链接]
y03051022 发表于 2025-4-29 17:40
在使用llvm opt工具加载pass的时候报错undefined symbol: _ZTIN4llvm12FunctionPassE 求助达大佬如何解决

opt版本信息:

opt --version
LLVM (http://llvm.org/):
LLVM version 9.0.1
DEBUG build with assertions.
Default target: x86_64-unknown-linux-gnu
Host CPU: goldmont



clang 版本信息

clang --version
clang version 9.0.1
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/local/bin




写的测试 pass代码如下

include "llvm/Pass.h"

include "llvm/IR/Function.h"

include "llvm/Support/raw_ostream.h"

include "llvm/IR/LegacyPassManager.h"

include "llvm/Transforms/IPO/PassManagerBuilder.h"

using namespace llvm;

namespace {
struct Hello : public FunctionPass {
static char ID;
Hello() : FunctionPass(ID) {}

bool runOnFunction(Function &F) override {
errs() << "Hello: ";
errs().write_escaped(F.getName()) << '\n';
return false;
}
}; // end of struct Hello
}  // end of anonymous namespace

char Hello::ID = 0;
static RegisterPass<Hello> X("hello", "Hello World Pass",
false / Only looks at CFG /,
false / Analysis Pass /);

static RegisterStandardPasses Y(
PassManagerBuilder::EP_EarlyAsPossible,
[](const PassManagerBuilder &Builder,
legacy::PassManagerBase &PM) { PM.add(new Hello()); });



顶层cmake代码如下

cmake_minimum_required(VERSION 3.10)
find_package(LLVM REQUIRED CONFIG)

add_definitions(LLVMDEFINITIONS)includedirectories({LLVM_INCLUDE_DIRS})

add_subdirectory(hellopass)



pass目录cmake代码如下

add_library(LLVMhellopass MODULE hello.cpp)



最终执行opt --load /home/re/myllvmpass/build/hellopass/libLLVMhellopass.so 的报错信息如下

Error opening '/home/re/myllvmpass/build/hellopass/libLLVMhellopass.so': /home/re/myllvmpass/build/hellopass/libLLVMhellopass.so: undefined symbol: _ZTIN4llvm12FunctionPassE
-load request ignored.

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-5-30 05:19

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表