blog
Table des matières
- 2026:
- 2025:
4 billet(s) pour septembre 2026
| Notes HTTP Strict Transport Security - HSTS | 2026/09/18 11:04 | Jean-Baptiste |
| Notes GNU Linux GPU carte graphiques | 2026/09/08 15:49 | Jean-Baptiste |
| Notes GNU Linux graphique | 2026/09/08 15:42 | Jean-Baptiste |
| Notes urlencoding - passer des mots de passe en HTTPS | 2026/09/03 17:58 | Jean-Baptiste |
Notes windows EXE DLL
Voir :
cygwin1.dll
Go lang
Voir aussi (Linux) :
Voir les fonctions présentes dans le DLL
readpe -e msvbvm60.dll
winedump -j export msvbvm60.dll
Voir les DLL liées
i686-w64-mingw32-objdump -p win-cgo-test.exe | grep "DLL Name:"
DLL Name: ws2_32.dll
DLL Name: advapi32.dll
DLL Name: ntdll.dll
DLL Name: kernel32.dll
DLL Name: winmm.dll
DLL Name: msvcrt.dll
Appeler une fonction dans une DLL
Avec Go
En ligne de commande
Voir :
wine rundll32.exe user32.dll,MessageBoxW env LANG="fr_FR.UTF-8" wine rundll32.exe user32.dll,MessageBoxA "Titre de la fenêtre"
Inclure ASM dans Go lang
Voir :
Inclure du C dans Go lang
Voir :
Voir aussi :
Inversement - Inclure du Go dans du C :
package main // #include <stdio.h> // #include <stdlib.h> // // static void myprint(char* s) { // printf("%s\n", s); // } import "C" import "unsafe" func main() { cs := C.CString("Hello from stdio") C.myprint(cs) C.free(unsafe.Pointer(cs)) }
Source : https://pkg.go.dev/cmd/cgo
Création image conteneur - exemple de multi-stage builds
Containerfile
FROM golang:latest as builder WORKDIR /build COPY ./build/main.go ./ # RUN go mod download ENV CGO_ENABLED 0 ENV GOOS linux #RUN CGO_ENABLED=0 go build main.go RUN go build -ldflags="-s -w" main.go FROM scratch WORKDIR /app COPY --from=builder /build/main ./main EXPOSE 8080 ENTRYPOINT ["./main"]
build/main.go
package main import ( "fmt" "net/http" ) func homeHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello World ! \n") } func main() { http.HandleFunc("/", homeHandler) http.ListenAndServe(":8080", nil) }
Exécuter du code python avec go lang
Voir :
Voir aussi :
Pb 1
$ go build py.go
# command-line-arguments
./py.go:3:11: fatal error: Python.h: No such file or directory
3 | // #include <Python.h>
| ^~~~~~
Solution
export C_INCLUDE_PATH=/usr/include/python3.13/
Pb 2
$ LANG=C go build py.go # command-line-arguments /usr/lib/go-1.26/pkg/tool/linux_amd64/link: running x86_64-linux-gnu-gcc failed: exit status 1 /usr/bin/x86_64-linux-gnu-gcc -m64 -Wl,--build-id=0x93e927a0e727ab54037ec0b3c85116f34e35a1b2 -o $WORK/b001/exe/a.out -Wl,--export-dynamic-symbol=_cgo_panic -Wl,--export-dynamic-symbol=_cgo_topofstack -Wl,--export-dynamic-symbol=crosscall2 -Wl,--compress-debug-sections=zlib /tmp/go-link-256395171/go.o /tmp/go-link-256395171/000000.o /tmp/go-link-256395171/000001.o /tmp/go-link-256395171/000002.o /tmp/go-link-256395171/000003.o /tmp/go-link-256395171/000004.o /tmp/go-link-256395171/000005.o /tmp/go-link-256395171/000006.o /tmp/go-link-256395171/000007.o /tmp/go-link-256395171/000008.o /tmp/go-link-256395171/000009.o /tmp/go-link-256395171/000010.o /tmp/go-link-256395171/000011.o /tmp/go-link-256395171/000012.o /tmp/go-link-256395171/000013.o /tmp/go-link-256395171/000014.o /tmp/go-link-256395171/000015.o /tmp/go-link-256395171/000016.o -O2 -g -O2 -g -lpthread -no-pie /usr/bin/x86_64-linux-gnu-ld.bfd: /tmp/go-link-256395171/000001.o: in function `_cgo_0270074b3d42_Cfunc_PyRun_SimpleString': /tmp/go-build/cgo-gcc-prolog:55:(.text+0x15): undefined reference to `PyRun_SimpleStringFlags' /usr/bin/x86_64-linux-gnu-ld.bfd: /tmp/go-link-256395171/000001.o: in function `_cgo_0270074b3d42_Cfunc_Py_Finalize': /tmp/go-build/cgo-gcc-prolog:67:(.text+0x31): undefined reference to `Py_Finalize' /usr/bin/x86_64-linux-gnu-ld.bfd: /tmp/go-link-256395171/000001.o: in function `_cgo_0270074b3d42_Cfunc_Py_Initialize': /tmp/go-build/cgo-gcc-prolog:76:(.text+0x41): undefined reference to `Py_Initialize' collect2: error: ld returned 1 exit status
blog.txt · Dernière modification : de 127.0.0.1
