macos - macOS 上的 libfuzzer 未找到架构 x86_64
问题描述
我正在尝试在 macOS 10.14.6 和 CLion 2019.2.5 上编译一个简单的模糊测试示例
#include <stdint.h>
#include <stddef.h>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
if (size > 0 && data[0] == 'H')
if (size > 1 && data[1] == 'I')
if (size > 2 && data[2] == '!')
__builtin_trap();
return 0;
}
这也显示在这里https://llvm.org/docs/LibFuzzer.html#toy-example如果已经设置了我的 CMakeLists.txt 一切正常他在此错误发生后链接 CXX 可执行文件
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
当我通过终端编译时发生同样的错误我尝试使用带有 Ubuntu 18.04 的 Virtualbox - 相同的 Clion 版本和 Cmakelist 没有问题
解决方案
它适用于您使用正确的编译器,而不是苹果的编译器,->brew install llvm
将首选项编译器 c 和 c++ 设置为/usr/local/opt/llvm/bin/clang
推荐阅读
- regex - 仅返回正则表达式模式 kotlin 的一部分
- testing - 具有 SDK 和服务发现支持的持续 E2E 监控
- here-api - HERE API 用于土路导航
- java - Selenium + Java 测试充满了跨度元素。解决不可点击元素问题的最佳方法
- windows - Powershell如何将远程目标与本地目标进行比较以发现差异
- flutter - 什么是 Canvas.save 和 Canvas.restore?
- rest - 加特林测试中的高响应时间
- javascript - 在 Testflight 版本中 React Native 元素的位置错误
- javascript - 反应在单击时访问列表组件的属性
- xamarin - 当我尝试上传微软商店时,UWP / Xamarin 在提交测试中崩溃