cl work as a command:
C:\cygwin64\home\opam>cl
Microsoft (R) C/C++ Optimizing Compiler Version 19.29.30133 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
link also availabe:
C:\cygwin64\home\opam>link
Microsoft (R) Incremental Linker Version 14.29.30133.0
Copyright (C) Microsoft Corporation. All rights reserved.
usage: LINK [options] [files] [@commandfile]
options:
Tools seems in the PATH:
C:\cygwin64\home\opam>path
PATH=C:\opam.opam\4.12\bin;C:\BuildTools\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64;C:\BuildTools\MSBuild\Current\bin\Ro
slyn;C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64;C:\Program Files (x86)\Windows Kits\10\bin\x64;C:\Build
Tools\MSBuild\Current\Bin;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\BuildTools\Common7\IDE;C:\BuildTools\Comm
on7\Tools;C:\cygwin64\bin;C:\Program Files\winget-cli;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Window
s\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files\Git\cmd;C:\Users\ContainerAdministrator
AppData\Local\Microsoft\WindowsApps
For MSVC it use “ocaml-env exec --64 --ms=vs2019 --” as suggested in the annuncement message.
Just figure out windres is actually available as x86_64-w64-mingw32-windres in this container, try manually generated both unison.res and unison.res.lib:
>x86_64-w64-mingw32-windres src/win32rc/unison.rc -O coff src/win32rc/unison.res.li
b
>x86_64-w64-mingw32-windres src/win32rc/unison.rc -O res src/win32rc/unison.res
C:\unison-master>ls -l src/win32rc
total 109
-rwx------ 1 ContainerAdministrator ContainerAdministrator 35840 Jan 2 16:55 U.ico
-rwx------ 1 ContainerAdministrator ContainerAdministrator 49 Jan 2 16:55 unison.rc
-rw-r--r-- 1 ContainerAdministrator ContainerAdministrator 36136 Jan 3 13:05 unison.res
-rw-r--r-- 1 ContainerAdministrator ContainerAdministrator 36466 Jan 3 13:04 unison.res.lib
I just figure out the above error due to cl doesn’t support -o option, the output file actually left as an .obj file in the source root rather than it’s original sub-folder. All .c files are end up with .obj files in the source root.