在macOS上使用-fsanitize=fuzzer标志进行编译以在LLVM中包含libfuzzer时,我得到错误:
-fsanitize=fuzzer
libclang_rt.fuzzer_osx.a is not found
我使用的LLVM/clang编译器是与Xcode 14捆绑在一起的。0.3.
q5lcpyga1#
问题是,Xcode中与LLVM捆绑的Clang版本不包括libfuzzer。这个问题有两个解决方案:1.从Homebrew安装LLVM版本(brew install llvm)1.从https://github.com/llvm/llvm-project/releases下载与Xcode中安装的版本匹配的LLVM完整包。解压缩归档文件,并将所有libclang_rt.fuzzer*文件从归档文件的lib/darwin目录复制到库的Xcode路径-/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.3/lib/darwin
brew install llvm
libclang_rt.fuzzer*
lib/darwin
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.3/lib/darwin
1条答案
按热度按时间q5lcpyga1#
问题是,Xcode中与LLVM捆绑的Clang版本不包括libfuzzer。
这个问题有两个解决方案:
1.从Homebrew安装LLVM版本(
brew install llvm
)1.从https://github.com/llvm/llvm-project/releases下载与Xcode中安装的版本匹配的LLVM完整包。解压缩归档文件,并将所有
libclang_rt.fuzzer*
文件从归档文件的lib/darwin
目录复制到库的Xcode路径-/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/14.0.3/lib/darwin