CxGo — это инструмент для перевода исходного кода C в Go (он же транспилятор, компилятор исходного кода).
Он использует cc v3 для предварительной обработки и синтаксического анализа C (без зависимостей clang/gcc!), а также специальную проверку типов и уровень трансляции AST, чтобы обеспечить наилучший результат.
Единственное требование: код C должен компилироваться с помощью cxgo , включая заголовки.
При этом cxgo использует несколько приемов, чтобы упростить этот процесс.
TL;DR для целей проекта:
Ознакомьтесь с часто задаваемыми вопросами, чтобы найти более распространенные вопросы о проекте.
Проект экспериментальный ! Не полагайтесь на него в производственных и других чувствительных средах!
Хотя он был успешно протестирован на нескольких проектах, он может изменить поведение кода из-за еще неизвестных ошибок.
Результаты тестирования компилятора:
Транспилированные проекты:
go install github.com/gotranspile/cxgo/cmd/cxgo@latestили загрузите последнюю версию с Github.
Самый быстрый способ попробовать это:
cxgo file main.cДля получения более подробной информации посетите наш раздел примеров.
Он проведет вас через основные шаблоны использования, а также через более сложные (в реальных проектах).
Вы также можете проверить FAQ, если у вас возникнут какие-либо проблемы.
Следующие функции C в настоящее время принимаются cxgo , но могут быть реализованы частично или не реализованы вообще:
static (#4)auto (#5)union с C-идентичным расположением данных (#7)packed структуры (#8)asmcase в странных местах (#9)goto запрещен Go (однако есть обходной путь, см. №10)setjmp (скомпилируется, но паникует во время выполнения)#ifdef для разных ОС/окружений Присоединяйтесь к нашему сообществу! Мы хотели бы услышать от вас ответ!
См. ВКЛАД.
Массачусетский технологический институт