windows system
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user