Я работаю над языком программирования с открытым исходным кодом и хочу, чтобы мои пользователи могли распространять автономные файлы .exe из своих программ.Моя стратегия состоит в том, чтобы иметь 3 компонента:
- DLL, которая содержит интерпретатор
- Небольшой объектный файл .o (сгенерированный один раз из C), который вызывает DLL для запуска выполнения
- Сгенерированный файл .o, который содержит двоичное представление программы пользователя, который должен быть встроен в виде двоичного двоичного объекта с # 2.
Когда пользователь запрашивает .exe, # 2и # 3 связаны друг с другом, и результирующий исполняемый файл может быть распространен с # 1.Пока все хорошо.
Проблема, с которой я столкнулся сейчас, заключается в том, что это означает, что MinGW должен быть связан с языком, чтобы выполнить этап связывания.Я не хочу, чтобы мои пользователи загружали MinGW вручную (моя основная аудитория - дети), а стандартный дистрибутив MinGW составляет более 100 мегабайт, поэтому комплектация всего этого испортила бы минимализм загрузки моего языка (сейчас это ~ 5 мб)).
У меня такой вопрос: существует ли окончательный список файлов, которые нужно вытащить из \ MinGW и связать с самим языком, что заставило бы g ++. Exe работать для связи двух файлов .o и необходимых библиотеквместе?
Также приветствуются альтернативные решения (например, свободно распространяемый компилятор C ++, который легче связать с другими приложениями).