libfuzzer на macOS не найден для архитектуры 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, если настроил мой 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
такая же ошибка возникает, когда я компилирую через терминал. Я пробовал это с Virtualbox с Ubuntu 18.04 - никаких проблем с той же версией Clion и списком команд.
1 ответ
Решение
Это работает, если вы используете правильный компилятор, а не яблочный,
-> brew install llvm
установить компилятор предпочтений c и C++ на /usr/local/opt/llvm/bin/clang