Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

能否兼容LLVM 17 #7

Open
lovelyjuice opened this issue Dec 11, 2024 · 0 comments
Open

能否兼容LLVM 17 #7

lovelyjuice opened this issue Dec 11, 2024 · 0 comments

Comments

@lovelyjuice
Copy link

最后一个兼容win7的rust版本是1.77.2,对应的llvm版本为 17.0.6
我试着编译了一个这个版本的LLVM,但是出现了以下错误

D:\ollvm-rust>cmake -G "Ninja" -S .\ollvm-pass -B .\build -DCMAKE_CXX_STANDARD=17 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DLT_LLVM_INSTALL_DIR="C:\Program Files\LLVM"
-- The C compiler identification is MSVC 19.42.34435.0
-- The CXX compiler identification is MSVC 19.42.34435.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.42.34433/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.42.34433/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:16 (message):
  Found LLVM 17, but need LLVM 18 or above


-- Configuring incomplete, errors occurred!

我又把cmakelist.txt里面对版本号的校验改成17,即

if("${LLVM_VERSION_MAJOR}" VERSION_LESS 17)
  message(FATAL_ERROR "Found LLVM ${LLVM_VERSION_MAJOR}, but need LLVM 18 or above")
endif()

然后试着编译dll,结果又报错

D:\ollvm-rust>cmake -G "Ninja" -S .\ollvm-pass -B .\build -DCMAKE_CXX_STANDARD=17 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DLT_LLVM_INSTALL_DIR="C:\Program Files\LLVM"
-- Configuring done (0.1s)
-- Generating done (0.0s)
-- Build files have been written to: D:/ollvm-rust/build

D:\ollvm-rust>cmake --build .\build\ -j12
[5/11] Building CXX object obfuscation\CMakeFiles\LLVMObfuscationx.dir\IndirectGlobalVariable.cpp.obj
C:\Program Files\LLVM\include\llvm/IR/Operator.h(75): warning C4624: “llvm::OverflowingBinaryOperator”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(129): warning C4624: “llvm::PossiblyExactOperator”: 已将析构函数隐式 定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(170): warning C4624: “llvm::FPMathOperator”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): warning C4624: “llvm::ConcreteOperator<llvm::OverflowingBinaryOperator,13>”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): note: 模板实例化上下文(最早的实例化上下文)为
C:\Program Files\LLVM\include\llvm/IR/Operator.h(351): note: 查看对正在编译的 类 模板 实例化“llvm::ConcreteOperator<llvm::OverflowingBinaryOperator,13>”的引用
C:\Program Files\LLVM\include\llvm/IR/Operator.h(350): warning C4624: “llvm::AddOperator”: 已将析构函数隐式定义为“已 删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): warning C4624: “llvm::ConcreteOperator<llvm::OverflowingBinaryOperator,15>”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): note: 模板实例化上下文(最早的实例化上下文)为
C:\Program Files\LLVM\include\llvm/IR/Operator.h(354): note: 查看对正在编译的 类 模板 实例化“llvm::ConcreteOperator<llvm::OverflowingBinaryOperator,15>”的引用
C:\Program Files\LLVM\include\llvm/IR/Operator.h(353): warning C4624: “llvm::SubOperator”: 已将析构函数隐式定义为“已 删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): warning C4624: “llvm::ConcreteOperator<llvm::OverflowingBinaryOperator,17>”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): note: 模板实例化上下文(最早的实例化上下文)为
C:\Program Files\LLVM\include\llvm/IR/Operator.h(357): note: 查看对正在编译的 类 模板 实例化“llvm::ConcreteOperator<llvm::OverflowingBinaryOperator,17>”的引用
C:\Program Files\LLVM\include\llvm/IR/Operator.h(356): warning C4624: “llvm::MulOperator”: 已将析构函数隐式定义为“已 删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): warning C4624: “llvm::ConcreteOperator<llvm::OverflowingBinaryOperator,25>”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): note: 模板实例化上下文(最早的实例化上下文)为
C:\Program Files\LLVM\include\llvm/IR/Operator.h(360): note: 查看对正在编译的 类 模板 实例化“llvm::ConcreteOperator<llvm::OverflowingBinaryOperator,25>”的引用
C:\Program Files\LLVM\include\llvm/IR/Operator.h(359): warning C4624: “llvm::ShlOperator”: 已将析构函数隐式定义为“已 删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): warning C4624: “llvm::ConcreteOperator<llvm::PossiblyExactOperator,20>”: 已将析构函数隐式定义为“已删除”
...
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include\optional(82): warning C4244:  “初始化”: 从“T”转换到“double”,可能丢失数据
        with
        [
            T=int64_t
        ]
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include\optional(82): note: 模板实例化上下文(最早的实例化上下文)为
C:\Program Files\LLVM\include\llvm/Support/JSON.h(420): note: 查看对正在编译的函数 模板 实例化“std::optional<double>::optional<T&,0>(_Ty2) noexcept”的引用
        with
        [
            T=int64_t,
            _Ty2=int64_t &
        ]
C:\Program Files\LLVM\include\llvm/Support/JSON.h(420): note: 请参阅 "llvm::json::Value::getAsNumber" 中对 "std::optional<double>::optional" 的第一个引用
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include\optional(248): note: 查看对正 在编译的函数 模板 实例化“std::_Optional_construct_base<_Ty>::_Optional_construct_base<T&>(std::in_place_t,T &)”的引用
        with
        [
            _Ty=double,
            T=int64_t
        ]
D:\ollvm-rust\ollvm-pass\obfuscation\ObfuscationPassManager.cpp(193): note: 查看对正在编译的函数 模板 实例化“std::_Optional_destruct_base<_Ty,true>::_Optional_destruct_base<T&>(std::in_place_t,T &) noexcept”的引用
        with
        [
            _Ty=double,
            T=int64_t
        ]
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include\optional(82): warning C4244:  “初始化”: 从“uint64_t”转换到“double”,可能丢失数据
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include\optional(82): note: 模板实例化上下文(最早的实例化上下文)为
C:\Program Files\LLVM\include\llvm/Support/JSON.h(422): note: 查看对正在编译的函数 模板 实例化“std::optional<double>::optional<T&,0>(_Ty2) noexcept”的引用
        with
        [
            T=uint64_t,
            _Ty2=uint64_t &
        ]
C:\Program Files\LLVM\include\llvm/Support/JSON.h(422): note: 请参阅 "llvm::json::Value::getAsNumber" 中对 "std::optional<double>::optional" 的第一个引用
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include\optional(248): note: 查看对正 在编译的函数 模板 实例化“std::_Optional_construct_base<_Ty>::_Optional_construct_base<uint64_t&>(std::in_place_t,uint64_t &)”的引用
        with
        [
            _Ty=double
        ]
D:\ollvm-rust\ollvm-pass\obfuscation\ObfuscationPassManager.cpp(193): note: 查看对正在编译的函数 模板 实例化“std::_Optional_destruct_base<_Ty,true>::_Optional_destruct_base<uint64_t&>(std::in_place_t,uint64_t &) noexcept”的引用
        with
        [
            _Ty=double
        ]
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include\optional(82): warning C4244:  “初始化”: 从“_Ty”转换到“__int64”,可能丢失数据
        with
        [
            _Ty=double
        ]
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include\optional(82): note: 模板实例化上下文(最早的实例化上下文)为
C:\Program Files\LLVM\include\llvm/Support/JSON.h(440): note: 查看对正在编译的函数 模板 实例化“std::optional<int64_t>::optional<double,0>(_Ty2 &&) noexcept”的引用
        with
        [
            _Ty2=double
        ]
C:\Program Files\LLVM\include\llvm/Support/JSON.h(440): note: 请参阅 "llvm::json::Value::getAsInteger" 中对 "std::optional<int64_t>::optional" 的第一个引用
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\include\optional(248): note: 查看对正 在编译的函数 模板 实例化“std::_Optional_construct_base<_Ty>::_Optional_construct_base<double>(std::in_place_t,double &&)”的引用
        with
        [
            _Ty=int64_t
        ]
D:\ollvm-rust\ollvm-pass\obfuscation\ObfuscationPassManager.cpp(193): note: 查看对正在编译的函数 模板 实例化“std::_Optional_destruct_base<_Ty,true>::_Optional_destruct_base<double>(std::in_place_t,double &&) noexcept”的引用
        with
        [
            _Ty=int64_t
        ]
[10/11] Building CXX object obfuscation\CMakeFiles\LLVMObfuscationx.dir\StringEncryption.cpp.obj
C:\Program Files\LLVM\include\llvm/IR/Operator.h(75): warning C4624: “llvm::OverflowingBinaryOperator”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(129): warning C4624: “llvm::PossiblyExactOperator”: 已将析构函数隐式 定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(170): warning C4624: “llvm::FPMathOperator”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): warning C4624: “llvm::ConcreteOperator<llvm::OverflowingBinaryOperator,13>”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): note: 模板实例化上下文(最早的实例化上下文)为
C:\Program Files\LLVM\include\llvm/IR/Operator.h(351): note: 查看对正在编译的 类 模板 实例化“llvm::ConcreteOperator<llvm::OverflowingBinaryOperator,13>”的引用
C:\Program Files\LLVM\include\llvm/IR/Operator.h(350): warning C4624: “llvm::AddOperator”: 已将析构函数隐式定义为“已 删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): warning C4624: “llvm::ConcreteOperator<llvm::OverflowingBinaryOperator,15>”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): note: 模板实例化上下文(最早的实例化上下文)为
C:\Program Files\LLVM\include\llvm/IR/Operator.h(354): note: 查看对正在编译的 类 模板 实例化“llvm::ConcreteOperator<llvm::OverflowingBinaryOperator,15>”的引用
C:\Program Files\LLVM\include\llvm/IR/Operator.h(353): warning C4624: “llvm::SubOperator”: 已将析构函数隐式定义为“已 删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): warning C4624: “llvm::ConcreteOperator<llvm::OverflowingBinaryOperator,17>”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): note: 模板实例化上下文(最早的实例化上下文)为
C:\Program Files\LLVM\include\llvm/IR/Operator.h(357): note: 查看对正在编译的 类 模板 实例化“llvm::ConcreteOperator<llvm::OverflowingBinaryOperator,17>”的引用
C:\Program Files\LLVM\include\llvm/IR/Operator.h(356): warning C4624: “llvm::MulOperator”: 已将析构函数隐式定义为“已 删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): warning C4624: “llvm::ConcreteOperator<llvm::OverflowingBinaryOperator,25>”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): note: 模板实例化上下文(最早的实例化上下文)为
C:\Program Files\LLVM\include\llvm/IR/Operator.h(360): note: 查看对正在编译的 类 模板 实例化“llvm::ConcreteOperator<llvm::OverflowingBinaryOperator,25>”的引用
C:\Program Files\LLVM\include\llvm/IR/Operator.h(359): warning C4624: “llvm::ShlOperator”: 已将析构函数隐式定义为“已 删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): warning C4624: “llvm::ConcreteOperator<llvm::PossiblyExactOperator,20>”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): note: 模板实例化上下文(最早的实例化上下文)为
C:\Program Files\LLVM\include\llvm/IR/Operator.h(364): note: 查看对正在编译的 类 模板 实例化“llvm::ConcreteOperator<llvm::PossiblyExactOperator,20>”的引用
C:\Program Files\LLVM\include\llvm/IR/Operator.h(363): warning C4624: “llvm::SDivOperator”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): warning C4624: “llvm::ConcreteOperator<llvm::PossiblyExactOperator,19>”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): note: 模板实例化上下文(最早的实例化上下文)为
C:\Program Files\LLVM\include\llvm/IR/Operator.h(367): note: 查看对正在编译的 类 模板 实例化“llvm::ConcreteOperator<llvm::PossiblyExactOperator,19>”的引用
C:\Program Files\LLVM\include\llvm/IR/Operator.h(366): warning C4624: “llvm::UDivOperator”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): warning C4624: “llvm::ConcreteOperator<llvm::PossiblyExactOperator,27>”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): note: 模板实例化上下文(最早的实例化上下文)为
C:\Program Files\LLVM\include\llvm/IR/Operator.h(370): note: 查看对正在编译的 类 模板 实例化“llvm::ConcreteOperator<llvm::PossiblyExactOperator,27>”的引用
C:\Program Files\LLVM\include\llvm/IR/Operator.h(369): warning C4624: “llvm::AShrOperator”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): warning C4624: “llvm::ConcreteOperator<llvm::PossiblyExactOperator,26>”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): note: 模板实例化上下文(最早的实例化上下文)为
C:\Program Files\LLVM\include\llvm/IR/Operator.h(373): note: 查看对正在编译的 类 模板 实例化“llvm::ConcreteOperator<llvm::PossiblyExactOperator,26>”的引用
C:\Program Files\LLVM\include\llvm/IR/Operator.h(372): warning C4624: “llvm::LShrOperator”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): warning C4624: “llvm::ConcreteOperator<llvm::Operator,39>”: 已 将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): note: 模板实例化上下文(最早的实例化上下文)为
C:\Program Files\LLVM\include\llvm/IR/Operator.h(376): note: 查看对正在编译的 类 模板 实例化“llvm::ConcreteOperator<llvm::Operator,39>”的引用
C:\Program Files\LLVM\include\llvm/IR/Operator.h(376): warning C4624: “llvm::ZExtOperator”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): warning C4624: “llvm::ConcreteOperator<llvm::Operator,34>”: 已 将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): note: 模板实例化上下文(最早的实例化上下文)为
C:\Program Files\LLVM\include\llvm/IR/Operator.h(379): note: 查看对正在编译的 类 模板 实例化“llvm::ConcreteOperator<llvm::Operator,34>”的引用
C:\Program Files\LLVM\include\llvm/IR/Operator.h(378): warning C4624: “llvm::GEPOperator”: 已将析构函数隐式定义为“已 删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): warning C4624: “llvm::ConcreteOperator<llvm::Operator,47>”: 已 将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): note: 模板实例化上下文(最早的实例化上下文)为
C:\Program Files\LLVM\include\llvm/IR/Operator.h(518): note: 查看对正在编译的 类 模板 实例化“llvm::ConcreteOperator<llvm::Operator,47>”的引用
C:\Program Files\LLVM\include\llvm/IR/Operator.h(517): warning C4624: “llvm::PtrToIntOperator”: 已将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): warning C4624: “llvm::ConcreteOperator<llvm::Operator,49>”: 已 将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): note: 模板实例化上下文(最早的实例化上下文)为
C:\Program Files\LLVM\include\llvm/IR/Operator.h(546): note: 查看对正在编译的 类 模板 实例化“llvm::ConcreteOperator<llvm::Operator,49>”的引用
C:\Program Files\LLVM\include\llvm/IR/Operator.h(545): warning C4624: “llvm::BitCastOperator”: 已将析构函数隐式定义为 “已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): warning C4624: “llvm::ConcreteOperator<llvm::Operator,50>”: 已 将析构函数隐式定义为“已删除”
C:\Program Files\LLVM\include\llvm/IR/Operator.h(336): note: 模板实例化上下文(最早的实例化上下文)为
C:\Program Files\LLVM\include\llvm/IR/Operator.h(561): note: 查看对正在编译的 类 模板 实例化“llvm::ConcreteOperator<llvm::Operator,50>”的引用
C:\Program Files\LLVM\include\llvm/IR/Operator.h(560): warning C4624: “llvm::AddrSpaceCastOperator”: 已将析构函数隐式 定义为“已删除”
[11/11] Linking CXX shared library obfuscation\LLVMObfuscationx.dll
FAILED: obfuscation/LLVMObfuscationx.dll obfuscation/LLVMObfuscationx.lib
C:\Windows\system32\cmd.exe /C "cd . && "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -E vs_link_dll --intdir=obfuscation\CMakeFiles\LLVMObfuscationx.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\x64\mt.exe --manifests  -- C:\PROGRA~1\MICROS~3\2022\COMMUN~1\VC\Tools\MSVC\1442~1.344\bin\Hostx64\x64\link.exe /nologo obfuscation\CMakeFiles\LLVMObfuscationx.dir\CryptoUtils.cpp.obj obfuscation\CMakeFiles\LLVMObfuscationx.dir\Utils.cpp.obj obfuscation\CMakeFiles\LLVMObfuscationx.dir\ObfuscationPassManager.cpp.obj obfuscation\CMakeFiles\LLVMObfuscationx.dir\ObfuscationOptions.cpp.obj obfuscation\CMakeFiles\LLVMObfuscationx.dir\IndirectBranch.cpp.obj obfuscation\CMakeFiles\LLVMObfuscationx.dir\IndirectCall.cpp.obj obfuscation\CMakeFiles\LLVMObfuscationx.dir\IndirectGlobalVariable.cpp.obj obfuscation\CMakeFiles\LLVMObfuscationx.dir\Flattening.cpp.obj obfuscation\CMakeFiles\LLVMObfuscationx.dir\StringEncryption.cpp.obj obfuscation\CMakeFiles\LLVMObfuscationx.dir\LegacyLowerSwitch.cpp.obj  /out:obfuscation\LLVMObfuscationx.dll /implib:obfuscation\LLVMObfuscationx.lib /pdb:obfuscation\LLVMObfuscationx.pdb /dll /version:0.0 /machine:x64 /INCREMENTAL:NO  /DEF:D:\ollvm-rust\ollvm-pass\obfuscation\obfuscation.def  "C:\Program Files\LLVM\lib\LLVMSupport.lib"  "C:\Program Files\LLVM\lib\LLVMCore.lib"  "C:\Program Files\LLVM\lib\LLVMIRReader.lib"  "C:\Program Files\LLVM\lib\LLVMLinker.lib"  "C:\Program Files\LLVM\lib\LLVMTransformUtils.lib"  "C:\Program Files\LLVM\lib\LLVMAnalysis.lib"  "C:\Program Files\LLVM\lib\LLVMProfileData.lib"  "C:\Program Files\LLVM\lib\LLVMSymbolize.lib"  "C:\Program Files\LLVM\lib\LLVMDebugInfoPDB.lib"  "C:\Program Files\Microsoft Visual Studio\2022\Community\DIA SDK\lib\amd64\diaguids.lib"  "C:\Program Files\LLVM\lib\LLVMDebugInfoMSF.lib"  "C:\Program Files\LLVM\lib\LLVMDebugInfoBTF.lib"  "C:\Program Files\LLVM\lib\LLVMDebugInfoDWARF.lib"  "C:\Program Files\LLVM\lib\LLVMObject.lib"  "C:\Program Files\LLVM\lib\LLVMIRReader.lib"  "C:\Program Files\LLVM\lib\LLVMAsmParser.lib"  "C:\Program Files\LLVM\lib\LLVMBitReader.lib"  "C:\Program Files\LLVM\lib\LLVMCore.lib"  "C:\Program Files\LLVM\lib\LLVMRemarks.lib"  "C:\Program Files\LLVM\lib\LLVMBitstreamReader.lib"  "C:\Program Files\LLVM\lib\LLVMMCParser.lib"  "C:\Program Files\LLVM\lib\LLVMMC.lib"  "C:\Program Files\LLVM\lib\LLVMDebugInfoCodeView.lib"  "C:\Program Files\LLVM\lib\LLVMTextAPI.lib"  "C:\Program Files\LLVM\lib\LLVMBinaryFormat.lib"  "C:\Program Files\LLVM\lib\LLVMTargetParser.lib"  "C:\Program Files\LLVM\lib\LLVMSupport.lib"  psapi.lib  shell32.lib  ole32.lib  uuid.lib  advapi32.lib  delayimp.lib  -delayload:shell32.dll  -delayload:ole32.dll  "C:\Program Files\LLVM\lib\LLVMDemangle.lib"  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ."
LINK: command "C:\PROGRA~1\MICROS~3\2022\COMMUN~1\VC\Tools\MSVC\1442~1.344\bin\Hostx64\x64\link.exe /nologo obfuscation\CMakeFiles\LLVMObfuscationx.dir\CryptoUtils.cpp.obj obfuscation\CMakeFiles\LLVMObfuscationx.dir\Utils.cpp.obj obfuscation\CMakeFiles\LLVMObfuscationx.dir\ObfuscationPassManager.cpp.obj obfuscation\CMakeFiles\LLVMObfuscationx.dir\ObfuscationOptions.cpp.obj obfuscation\CMakeFiles\LLVMObfuscationx.dir\IndirectBranch.cpp.obj obfuscation\CMakeFiles\LLVMObfuscationx.dir\IndirectCall.cpp.obj obfuscation\CMakeFiles\LLVMObfuscationx.dir\IndirectGlobalVariable.cpp.obj obfuscation\CMakeFiles\LLVMObfuscationx.dir\Flattening.cpp.obj obfuscation\CMakeFiles\LLVMObfuscationx.dir\StringEncryption.cpp.obj obfuscation\CMakeFiles\LLVMObfuscationx.dir\LegacyLowerSwitch.cpp.obj /out:obfuscation\LLVMObfuscationx.dll /implib:obfuscation\LLVMObfuscationx.lib /pdb:obfuscation\LLVMObfuscationx.pdb /dll /version:0.0 /machine:x64 /INCREMENTAL:NO /DEF:D:\ollvm-rust\ollvm-pass\obfuscation\obfuscation.def C:\Program Files\LLVM\lib\LLVMSupport.lib C:\Program Files\LLVM\lib\LLVMCore.lib C:\Program Files\LLVM\lib\LLVMIRReader.lib C:\Program Files\LLVM\lib\LLVMLinker.lib C:\Program Files\LLVM\lib\LLVMTransformUtils.lib C:\Program Files\LLVM\lib\LLVMAnalysis.lib C:\Program Files\LLVM\lib\LLVMProfileData.lib C:\Program Files\LLVM\lib\LLVMSymbolize.lib C:\Program Files\LLVM\lib\LLVMDebugInfoPDB.lib C:\Program Files\Microsoft Visual Studio\2022\Community\DIA SDK\lib\amd64\diaguids.lib C:\Program Files\LLVM\lib\LLVMDebugInfoMSF.lib C:\Program Files\LLVM\lib\LLVMDebugInfoBTF.lib C:\Program Files\LLVM\lib\LLVMDebugInfoDWARF.lib C:\Program Files\LLVM\lib\LLVMObject.lib C:\Program Files\LLVM\lib\LLVMIRReader.lib C:\Program Files\LLVM\lib\LLVMAsmParser.lib C:\Program Files\LLVM\lib\LLVMBitReader.lib C:\Program Files\LLVM\lib\LLVMCore.lib C:\Program Files\LLVM\lib\LLVMRemarks.lib C:\Program Files\LLVM\lib\LLVMBitstreamReader.lib C:\Program Files\LLVM\lib\LLVMMCParser.lib C:\Program Files\LLVM\lib\LLVMMC.lib C:\Program Files\LLVM\lib\LLVMDebugInfoCodeView.lib C:\Program Files\LLVM\lib\LLVMTextAPI.lib C:\Program Files\LLVM\lib\LLVMBinaryFormat.lib C:\Program Files\LLVM\lib\LLVMTargetParser.lib C:\Program Files\LLVM\lib\LLVMSupport.lib psapi.lib shell32.lib ole32.lib uuid.lib advapi32.lib delayimp.lib -delayload:shell32.dll -delayload:ole32.dll C:\Program Files\LLVM\lib\LLVMDemangle.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST:EMBED,ID=2" failed (exit code 1120) with the following output:
LLVMSupport.lib(raw_ostream.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0”(CryptoUtils.cpp.obj 中)
LLVMSupport.lib(raw_ostream.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“MD_DynamicRelease”(CryptoUtils.cpp.obj 中)
LLVMSupport.lib(Twine.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0”(CryptoUtils.cpp.obj 中)
LLVMSupport.lib(Twine.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“MD_DynamicRelease”(CryptoUtils.cpp.obj 中)
LLVMSupport.lib(StringRef.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0”(CryptoUtils.cpp.obj 中)
LLVMSupport.lib(StringRef.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“MD_DynamicRelease”(CryptoUtils.cpp.obj 中)
LLVMSupport.lib(SmallPtrSet.obj) : error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“2”不匹配值“0”(CryptoUtils.cpp.obj 中)
....
LLVMCore.lib(BuiltinGCs.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“MD_DynamicRelease”(CryptoUtils.cpp.obj 中)
  正在创建库 obfuscation\LLVMObfuscationx.lib 和对象 obfuscation\LLVMObfuscationx.exp
LINK : warning LNK4098: 默认库“MSVCRTD”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
LLVMCore.lib(CycleInfo.obj) : error LNK2001: 无法解析的外部符号 __imp__invalid_parameter
LLVMCore.lib(GCStrategy.obj) : error LNK2001: 无法解析的外部符号 __imp__invalid_parameter
LLVMCore.lib(BuiltinGCs.obj) : error LNK2001: 无法解析的外部符号 __imp__invalid_parameter
...
LLVMSupport.lib(SmallPtrSet.obj) : error LNK2001: 无法解析的外部符号 __imp__invalid_parameter
LLVMCore.lib(CycleInfo.obj) : error LNK2001: 无法解析的外部符号 __imp__CrtDbgReport
...
LLVMSupport.lib(SmallPtrSet.obj) : error LNK2001: 无法解析的外部符号 __imp__CrtDbgReport
LLVMSupport.lib(Signals.obj) : error LNK2019: 无法解析的外部符号 __imp__CrtSetReportHook,函数 "void __cdecl llvm::sys::DisableSystemDialogsOnCrash(void)" (?DisableSystemDialogsOnCrash@sys@llvm@@YAXXZ) 中引用了该符号
obfuscation\LLVMObfuscationx.dll : fatal error LNK1120: 3 个无法解析的外部命令
ninja: build stopped: subcommand failed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant