DreamSoule / ollvm17

Obfuscation LLVM 17
230 stars 37 forks source link

llvm17 编译报错:'class llvm::Type' has no member named 'getPointerElementType' #1

Closed silentEAG closed 10 months ago

silentEAG commented 10 months ago

image

C:/Compiler/llvm-project/llvm/lib/Passes/Obfuscation/compat/CallSite.h: In lambda function:
C:/Compiler/llvm-project/llvm/lib/Passes/Obfuscation/compat/CallSite.h:155:28: error: 'class llvm::Type' has no member named 'getPointerElementType'; did y
ou mean 'getStructElementType'?
  155 |       return V->getType()->getPointerElementType();
      |                            ^~~~~~~~~~~~~~~~~~~~~
      |                            getStructElementType
[1689/3788] Building CXX object lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86PreTileConfig.cpp.obj
ninja: build stopped: subcommand failed.

cmake 构建指令:

cmake -G "Ninja" -S ./llvm-project/llvm -B ./build_dyn_x64 -DCMAKE_INSTALL_PREFIX=./llvm_x64 -DCMAKE_CXX_STANDARD=17 -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang;lld;" -DLLVM_TARGETS_TO_BUILD="X86" -DBUILD_SHARED_LIBS=ON -DLLVM_INSTALL_UTILS=ON -DLLVM_INCLUDE_TESTS=OFF -DLLVM_BUILD_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_BUILD_BENCHMARKS=OFF

编译环境:vmware win10 64位,MSYS2 Mingw64 toolchain 编译 llvm 版本:https://github.com/rust-lang/llvm-project/tree/rustc/17.0-2023-09-19 (17.0.2)

查阅文档似乎是 llvm17.x 中已经删除了 getPointerElementType ?

image

参考链接:https://llvm.org/docs/OpaquePointers.html#migration-instructions

DreamSoule commented 10 months ago

这个函数似乎并没有用到,我把他删除了一样可以过编译,可能是msvc编译时因为优化自动去掉了这个函数我这里编译的时候就没有报错

silentEAG commented 10 months ago

感谢,已解决