Я пытаюсь написать Go wrapper, используя CGo для ENet.Условная компиляция в Go
Когда я попытался скомпилировать мою обертку на Mac, библиотека была старше и имела немного другой интерфейс. 99% кода - это то же самое, что требуется только для нескольких вызовов C.
Какова наилучшая практика для решения такой проблемы в Go?
Есть ли способ сделать условную компиляцию или условный импорт?
Go на самом деле имеет условную компиляцию с использованием суффиксов имен файлов, как демонстрирует ответ andyBallholm. –
Downvoters собираются ненавидеть :). Серьезно, хотя, @peterSO имеет правильный ответ для моей конкретной проблемы. Оказывается, Mac - это красная селедка. Реальная проблема связана с версиями библиотек, которые могут быть обнаружены только как '# define' в файлах заголовков. '_darwin.go' или' _linux.go' только замаскирует проблему, пока один из них не обновит свою библиотеку ENet с несовместимым изменением. –