This works but only without any use in the Test.rs file. As soon as I add for example use std::ffi::CString; a whole bunch of undefined reference errors are output by ld (for linking CTest).
You should not ever try to manually link object files emitted using --emit obj. Instead use --crate-type staticlib without --emit obj and link the .a static library that is generated. This bundles all rust dependencies your crate has.
If you want a single static library, tell rustc to build a static library and then add the other object files to this static library. Or put the other object files in another static library and then tell rustc to bundle the contents of the former static library (this is the default when linking against static libraries).
Managing a Library | Microsoft Learn suggest that something like lib.exe /out:new_library.lib the_rustc_library.lib a.obj b.obj will create a library new_library.lib which has the contents of the_rustc_library.lib and also a.obj and b.obj added.