You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1.5KB

Windows CGO + MSVC note

Verified blocker

On this machine, with:

  • Go on Windows
  • CC=cl.exe
  • CXX=cl.exe
  • Visual Studio 2019 Build Tools environment loaded via vcvars64.bat

The following already fails before project code is involved:

cmd /c "call \"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars64.bat\" && set CC=cl.exe && set CXX=cl.exe && set CGO_ENABLED=1 && go build -x runtime/cgo"

Failure shape:

  • Go/cgo invokes cl.exe
  • but still passes GCC-style flags such as:
    • -Wall
    • -Werror
    • -fno-stack-protector
  • MSVC rejects them, e.g.:
    • cl : command line error D8021: invalid numeric argument '/Werror'

Conclusion

A fully MSVC-oriented CGO build path for the CUDA+SDRplay app is currently blocked in this environment by the Go/CGO toolchain behavior itself, not by repository code.

Practical impact

  • CUDA kernel artifact preparation on Windows works
  • package-level cufft tests work
  • full app build with MinGW linker + MSVC-built CUDA artifacts fails due to ABI/runtime mismatch
  • full app build with CC=cl.exe also fails because runtime/cgo already breaks

Recommendation

Treat this as an environment/toolchain constraint. Continue to:

  • keep the repository build logic clean and separated by platform
  • preserve the working default non-CUDA Windows build path
  • preserve Windows CUDA artifact preparation
  • prefer Linux for the first end-to-end CUDA-enabled application build if full Windows CGO/MSVC compatibility remains blocked