How to solve 'undefined reference to llvm::createLowerSwitchPass()' when compiling Obfuscator?

How to solve ‘undefined reference to llvm::createLowerSwitchPass()’ when compiling Obfuscator(llvm-9.0) ?

How to solve the problem that an error occurs in Obfuscator(llvm-9.0) compilation, as follow figure:
obfuscator compiling error
​ As error information showing, ‘undefined reference to llvm::createLowerSwitchPass()’. Cause of the problem is lack of llvm link-components configured.

​ The way to solve the problem is:

​ 1.modify ‘obfuscator/tools/lto/CMakeLists.txt’:

1 set(LLVM_LINK_COMPONENTS                         
2 +++  Obfuscation # --[FIX err]
3 +++  TransformUtils # --[FIX err]
4   AllTargetsAsmParsers
5   AllTargetsCodeGens

​ 2.modify ‘obfuscator/tools/llvm-lto/CMakeLists.txt’

1 set(LLVM_LINK_COMPONENTS                         
2 +++  Obfuscation # --[FIX err]
3 +++  TransformUtils # --[FIX err]
4   AllTargetsAsmParsers
5   AllTargetsCodeGens

​ 3.modify ‘obfuscator/tools/llvm-lto2/CMakeLists.txt’

1 set(LLVM_LINK_COMPONENTS                         
2 +++  Obfuscation # --[FIX err]
3 +++  TransformUtils # --[FIX err]
4   AllTargetsAsmParsers
5   AllTargetsCodeGens

​ 4.modify ‘obfuscator/unittests/IR/CMakeLists.txt’

1 set(LLVM_LINK_COMPONENTS                                           
2 +++  Obfuscation # --[FIX err]
3 +++  TransformUtils # --[FIX err]
4   Analysis
5   AsmParser

​ 5.modify ‘obfuscator/unittests/Passes/CMakeLists.txt’

10 set(LLVM_LINK_COMPONENTS                                           
11 +++     Obfuscation # --[FIX err]
12 +++     TransformUtils # --[FIX err]
13         Support                                                   
14         Passes                                                     
15         Core)

​ 6.Finally, create obfuscator cmake project, and make.

Note:

The way above is too complex. I think that there is a better way to solve this problem, maybe modifying other cmake-config to compile the function definition(llvm::createLowerSwitchPass) into other archive, or others. At the moment, I have not idea.

If your way is better than mine, please tell me. Thanks.

mailbox:18428388868@163.com

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值