Próbuję napisać Przejść wrapper użyciu CGo dla ENet.Warunkowa kompilacja Przejdź
Kiedy próbowałem skompilować moje opakowanie na komputerze Mac, biblioteka była starsza i miała nieco inny interfejs. 99% kodu jest takie samo, wystarczy kilka wywołań C, które trzeba zmienić.
Jaka jest najlepsza praktyka radzenia sobie z takim problemem w programie Go?
Czy istnieje sposób na kompilację warunkową lub import warunkowy?
Go faktycznie ma kompilację warunkową z użyciem sufiksów nazw plików, jak pokazuje odpowiedź andyBallholm. –
Downwotnicy będą nienawidzić :). Poważnie jednak, @peterSO ma poprawną odpowiedź na mój konkretny problem. Okazało się, że Mac to czerwony śledź. Prawdziwym problemem są wersje bibliotek, które można wykryć tylko jako '# define' w plikach nagłówkowych. "_darwin.go" lub "_linux.go" maskowałoby tylko problem, dopóki jeden z nich nie zaktualizował swojej biblioteki ENET z niekompatybilną zmianą wsteczną. –