我有一个 libFuzzer 使用的简单示例。
// Test_fuzzer.cc
#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;
}
Run Code Online (Sandbox Code Playgroud)
我可以用 clang 编译它并运行。
clang -g -O1 -fsanitize=fuzzer test_fuzzer.cc //OK
Run Code Online (Sandbox Code Playgroud)
现在我想将 cmake 添加到这个示例中。
// CMakeLists.txt file:
cmake_minimum_required (VERSION 3.11)
project (Tutorial)
set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -O1 -fsanitize=fuzzer")
add_executable(Tutorial test_fuzzer.cc)
Run Code Online (Sandbox Code Playgroud)
cmake . //OK
make
Run Code Online (Sandbox Code Playgroud)
但我收到错误。如何修复它?
/usr/bin/ld: …Run Code Online (Sandbox Code Playgroud)