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)asm
case
в странных местах (#9)goto
запрещен Go (однако есть обходной путь, см. №10)setjmp
(скомпилируется, но паникует во время выполнения)#ifdef
для разных ОС/окружений Присоединяйтесь к нашему сообществу! Мы хотели бы услышать от вас ответ!
См. ВКЛАД.
Массачусетский технологический институт