Ich versuche ein Go wrapper mit CGo für ENet zu schreiben.Bedingte Kompilierung in Go
Als ich versuchte, meinen Wrapper auf einem Mac zu kompilieren, war die Bibliothek älter und hatte ein etwas anderes Interface. 99% des Codes sind gleich, nur ein paar C-Aufrufe müssen geändert werden.
Was ist die beste Vorgehensweise für den Umgang mit einem solchen Problem in Go?
Gibt es eine Möglichkeit, bedingte Kompilierung oder bedingte Importe durchzuführen?
Go hat tatsächlich bedingte Kompilierung mit Dateinamen Suffixe als andyBallholms Antwort demonstriert. –
Downvoters werde hassen :). Ernsthaft, @peterSO hat die richtige Antwort für mein spezielles Problem. Stellt sich heraus, dass das Mac-Ding ein Ablenkungsmanöver ist. Das eigentliche Problem ist bei Bibliotheksversionen, die nur als '# define' in den Header-Dateien erkannt werden können. '_darwin.go' oder' _linux.go' würden das Problem nur maskieren, bis einer von ihnen ihre ENet-Bibliothek mit einer rückwärtskompatiblen Änderung aktualisiert hat. –