Running Cargo fuzzer on Windows MSVC
โ Rust ๐ 2025-11-17 ๐ค surdeus ๐๏ธ 9So. To run saphyr crate I need cargo fuzz. So I followed the non-optional steps in Fuzzing on Windows - Rust Fuzz Book
And I've been trying everything to get it to work. Not a C/C++ expert, but I ran the cargo build --verbose to get full output and it got following:
`C:\Users\Daniel\.rustup\toolchains\1.90.0-x86_64-pc-windows-msvc\bin\rustc.exe
--crate-name parse
--edition=2021 fuzz\fuzz_targets\parse.rs
--error-format=json
--json=diagnostic-rendered-ansi,artifacts,future-incompat
--diagnostic-width=173
--crate-type bin
--emit=dep-info,link
-C embed-bitcode=no
-C debuginfo=2
--check-cfg cfg(docsrs,test)
--check-cfg "cfg(feature, values())"
-C metadata=87316383e796f718
--out-dir C:\projects\saphyr\target\debug\deps
-C incremental=C:\projects\saphyr\target\debug\incremental
-L dependency=C:\projects\saphyr\target\debug\deps
--extern libfuzzer_sys=C:\projects\saphyr\target\debug\deps\liblibfuzzer_sys-c069053dfe4af998.rlib
--extern saphyr=C:\projects\saphyr\target\debug\deps\libsaphyr-92d268998031eb13.rlib
--extern saphyr_parser=C:\projects\saphyr\target\debug\deps\libsaphyr_parser-d55d57b6ec8ed5c1.rlib
-L native=C:\projects\saphyr\target\debug\build\libfuzzer-sys-c4834ed5d181fca3\out
-L "native=C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\MSVC\14.50.35717\atlmfc\lib\x64
error: linking with `link.exe` failed: exit code: 1561
|
= note: "C:\\Program Files\\Microsoft Visual Studio\\18\\Community\\VC\\Tools\\MSVC\\14.50.35717\\bin\\HostX64\\x64\\link.exe" "/NOLOGO" "C:\\Users\\USERNAME\\AppData\\Local\\Temp\\rustc8qMXLw\\symbols.o" "<95 object files omitted>" "C:\\projects\\saphyr\\target\\debug\\deps/{libsaphyr_parser-d55d57b6ec8ed5c1,libthiserror-4ddbb23fc2d4ace4,libarraydeque-2cd7471d3c980d29,liblibfuzzer_sys-c069053dfe4af998,libarbitrary-5c1e4583cacb232a}.rlib" "<sysroot>\\lib\\rustlib\\x86_64-pc-windows-msvc\\lib/{libstd-*,libpanic_unwind-*,libwindows_targets-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libunwind-*,libcfg_if-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "kernel32.lib" "kernel32.lib" "kernel32.lib" "ntdll.lib" "userenv.lib" "ws2_32.lib" "dbghelp.lib" "/defaultlib:msvcrt" "/NXCOMPAT" "/LIBPATH:C:\\projects\\saphyr\\target\\debug\\build\\libfuzzer-sys-c4834ed5d181fca3\\out" "/LIBPATH:C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.29.30133\\atlmfc\\lib\\x64" "/OUT:C:\\projects\\saphyr\\target\\debug\\deps\\parse.exe" "/OPT:REF,NOICF" "/DEBUG" "/PDBALTPATH:%_PDB%" "/NATVIS:<sysroot>\\lib\\rustlib\\etc\\intrinsic.natvis" "/NATVIS:<sysroot>\\lib\\rustlib\\etc\\liballoc.natvis" "/NATVIS:<sysroot>\\lib\\rustlib\\etc\\libcore.natvis" "/NATVIS:<sysroot>\\lib\\rustlib\\etc\\libstd.natvis"
= note: some arguments are omitted. use `--verbose` to show all linker arguments
= note: Creating library C:\projects\saphyr\target\debug\deps\parse.lib and object C:\projects\saphyr\target\debug\deps\parse.expโ
LINK : fatal error LNK1561: entry point must be definedโ
error: could not compile `saphyr-fuzz` (bin "parse") due to 1 previous error
Caused by:
process didn't exit successfully: `C:\Users\USERNAME\.rustup\toolchains\1.90.0-x86_64-pc-windows-msvc\bin\rustc.exe --crate-name parse --edition=2021 fuzz\fuzz_targets\parse.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --diagnostic-width=136 --crate-type bin --emit=dep-info,link -C embed-bitcode=no -C debuginfo=2 --check-cfg cfg(docsrs,test) --check-cfg "cfg(feature, values())" -C metadata=87316383e796f718 --out-dir C:\projects\saphyr\target\debug\deps -C incremental=C:\projects\saphyr\target\debug\incremental -L dependency=C:\projects\saphyr\target\debug\deps --extern libfuzzer_sys=C:\projects\saphyr\target\debug\deps\liblibfuzzer_sys-c069053dfe4af998.rlib --extern saphyr=C:\projects\saphyr\target\debug\deps\libsaphyr-92d268998031eb13.rlib --extern saphyr_parser=C:\projects\saphyr\target\debug\deps\libsaphyr_parser-d55d57b6ec8ed5c1.rlib -L native=C:\projects\saphyr\target\debug\build\libfuzzer-sys-c4834ed5d181fca3\out -L "native=C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\atlmfc\lib\x64"` (exit code: 1)
I keep getting the LNK1561 error, and I'm not sure what I'm doing wrong.
Did anyone have any luck running cargo fuzzer on Windows?
1 post - 1 participant
๐ท๏ธ Rust_feed