Estoy tratando de escribir un Go wrapper usando CGo para ENet.compilación condicional en Go
Cuando traté de compilar mi envoltorio en una Mac, la biblioteca era más antigua y tenía una interfaz ligeramente diferente. El 99% del código es el mismo, solo unas pocas llamadas C deben cambiar.
¿Cuál es la mejor práctica para hacer frente a un problema como este en Go?
¿Hay alguna manera de hacer compilaciones condicionales o importaciones condicionales?
Go realmente tiene compilación condicional usando sufijos de nombre de archivo como lo demuestra la respuesta andyBallholm. –
Downvoters va a odiar :). En serio, @peterSO tiene la respuesta correcta para mi problema particular. Resulta que lo de Mac es una pista falsa. El verdadero problema es con las versiones de la biblioteca, que solo se pueden detectar como '# define' en los archivos de encabezado. '_darwin.go' o' _linux.go' solo enmascararía el problema hasta que uno de ellos actualizara su biblioteca ENet con un cambio incompatible hacia atrás. –