windows system

This commit is contained in:
2026-10-06 13:23:15 +02:00
parent 03d2ece7d6
commit 208a3e9738
12 changed files with 93 additions and 16 deletions
+23
View File
@@ -224,3 +224,26 @@ endif
Más adelante (Fase 4) aquí irán también las librerías que cambian según la
plataforma, como `-lws2_32` para Winsock en Windows.
### La «magia .exe» de MSYS2
Sin `EXE`, el Makefile con objetivo `build/hello` parece funcionar en Windows:
el segundo `make` dice `Nothing to be done`. No es mérito del Makefile:
- `make`, `ls` y la shell de `/usr/bin` son programas de MSYS2, que emula
POSIX encima de Windows.
- Si un programa de MSYS2 pregunta por `build/hello` y solo existe
`build/hello.exe`, la capa de emulación responde que existe y le da la fecha
del `.exe`.
| Comando | Qué ve |
|---|---|
| `ls -l build/hello` | Pasa por la emulación: «existe». |
| `cmd //c dir build` | Pregunta a Windows: solo hay `hello.exe`. |
Con un make nativo (`mingw32-make`) esa emulación no existe: no encuentra
`build/hello` y vuelve a enlazar cada vez. Por eso se pone el nombre real con
`$(EXE)`.
**Comparación con Go:** `go build` añade `.exe` por sí mismo cuando
`GOOS=windows`. En C, el nombre del ejecutable lo decides tú en el Makefile.