构建 LLVM、Clang 和 Libfuzzer

问题描述 投票:0回答:1

我是初学者,我想从源代码构建 LLVM、clang 和 Libfuzzer。所以我运行 cmake 命令

cmake -S llvm -B build -G Ninja \
    -DLLVM_ENABLE_PROJECTS="clang;lldb" \
    -DLLVM_ENABLE_RUNTIMES="libcxx" \
    -DCMAKE_BUILD_TYPE=Debug \
    -DLLVM_TARGETS_TO_BUILD="AArch64" \
    -DLLVM_ENABLE_ASSERTIONS=ON \
    -DLLVM_USE_SANITIZER=Address \
    -DLLVM_USE_SANITIZE_COVERAGE=On \
    -DLLDB_USE_SYSTEM_DEBUGSERVER=ON \
    -DCMAKE_C_COMPILER=/opt/homebrew/opt/llvm/bin/clang \
    -DCMAKE_CXX_COMPILER=/opt/homebrew/opt/llvm/bin/clang++  \
    -DCMAKE_OSX_ARCHITECTURES='arm64' \
    -DCMAKE_CXX_FLAGS="-isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk"

但是当我构建它时,它得到了错误:

llvm-project/llvm/tools/vfabi-demangle-fuzzer/vfabi-demangler-fuzzer.cpp:20:16:错误:变量具有不完整类型“SMDiagnostic”
20 | SMD诊断错误;
llvm-project/llvm/include/llvm/AsmParser/Parser.h:29:7:注意:‘llvm::SMDiagnostic’的前向声明
29 | 29 SMDiagnostic 类;
llvm-project/llvm/tools/vfabi-demangle-fuzzer/vfabi-demangler-fuzzer.cpp:33:44:错误:成员访问不完整类型“llvm::Module”
33 | FunctionType::get(Type::getVoidTy(M->getContext()), false);
llvm-project/llvm/include/llvm/AsmParser/Parser.h:26:7:注意:‘llvm::Module’的前向声明
26 | 26类模块;
产生 2 个错误。
[3998/4053]构建CXX对象工具/llvm-r…/CMakeFiles/llvm-readobj.dir/ELFDumper.cpp.o
忍者:构建停止:子命令失败。

当我问chatgpt时,答案是在文件中包含一些标头。我这样做了,但构建仍然失败。 libfuzzer 需要这个文件吗?我可以更改我的 cmake 命令以正确构建在 LibFuzzer 中处理我的项目所需的所有必要项目吗,我认为是 llvm、clang、lldb 和 Libfuzzer。请给我任何有关如何解决此问题并正确构建的想法。非常感谢您的帮助。

build clang llvm lldb libfuzzer
1个回答
0
投票

要构建 lldb 这些天你必须做:

-DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi;compiler-rt;libunwind"

当您构建它时,您需要与

clangTooling
一起构建
lldb
。如果您遇到更多问题,您可以尝试在以下位置提交问题:

https://github.com/llvm/llvm-project/issues

© www.soinside.com 2019 - 2024. All rights reserved.