找不到适用于架构的 macOS 上的 libfuzzer x86_64
libfuzzer on macOS not found for architecture 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
我正在尝试在 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