Open
Description
最后一个兼容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.
Metadata
Assignees
Labels
No labels
Activity