Tôi đang cố gắng viết một số wrapper bằng CGo cho ENet.Biên soạn có điều kiện trong Go
Khi tôi cố gắng biên dịch trình bao bọc của mình trên máy Mac, thư viện cũ hơn và có giao diện hơi khác một chút. 99% của mã là giống như chỉ một vài C cuộc gọi cần phải thay đổi.
Cách tốt nhất để giải quyết vấn đề như thế này trong Go?
Có cách nào để thực hiện việc biên dịch có điều kiện hoặc nhập khẩu có điều kiện không?
Thực sự không có biên dịch có điều kiện sử dụng hậu tố tên tệp như câu trả lời của andyBallholm. –
Downvoters sẽ ghét :). Nghiêm túc, mặc dù @peterSO có câu trả lời đúng cho vấn đề cụ thể của tôi. Hóa ra điều Mac là một cá trích đỏ. Vấn đề thực sự là với các phiên bản thư viện, mà chỉ có thể được phát hiện dưới dạng '# define' trong các tệp tiêu đề. '_darwin.go' hoặc' _linux.go' sẽ chỉ che giấu vấn đề cho đến khi một trong số chúng cập nhật thư viện ENet của chúng với sự thay đổi không tương thích ngược. –