Какие предложения по ограничению сборки использовать, чтобы отличать 32-разрядные от 64-разрядных целых чисел?

#go #build #int

#Вперед #сборка #int

Вопрос:

Я хочу определить константу, числовое значение которой зависит от того, int является 32-разрядным или 64-разрядным типом в конкретной целевой архитектуре. Можно скомпилировать исходные файлы go условно, используя ограничения сборки.

Существуют ли простые предложения ограничения сборки с предопределенными тегами, которые выбирают для одного или другого? В идеале, что-то вроде:

 // build 32bit
  

В противном случае мне пришлось бы либо каким-то образом определять размер извне и использовать пользовательские теги сборки, либо поддерживать большой список предопределенных целевых тегов, которые могут меняться с каждым выпуском go. Есть ли более простой способ?

Комментарии:

1. Нет встроенного ограничения сборки конкретно на размер int . Вы могли бы попытаться настроить таргетинг на основе GOARCH (например, 386 vs amd64 , arm vs arm64 и т.д.). Хотя это кажется очень вероятной проблемой XY — зачем вы пытаетесь это сделать?