Running Cargo fuzzer on Windows MSVC

So. 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?

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.