Существует ли компилятор / компоновщик C / C ++, который может быть встроен непосредственно в программу на C / C ++? - PullRequest
4 голосов
/ 15 апреля 2011

Идея состоит в том, чтобы генерировать код C / C ++ во время выполнения, скомпилировать его в общий объект и загрузить этот общий объект в текущий процесс.

Я знаю, что это можно сделать с помощью существующей установки компилятора на платформе хоста (GCC или MSVC), но в практическом сценарии клиент не обязательно должен иметь такую ​​установку. Так что идея состоит в том, чтобы статически связываться с таким компилятором и компоновщиком.

Например, в Java вы можете скомпилировать классы .java непосредственно из кода Java. Его можно использовать для автоматической генерации объектов Buisness из схемы базы данных.

Ответы [ 5 ]

2 голосов
/ 15 апреля 2011

Вы можете сделать это с помощью интерфейса на языке c ( clang ) до llvm . Статический анализатор , построенный поверх clang, может дать вам некоторые идеи о том, как действовать дальше.

1 голос
/ 15 апреля 2011

Google 'c интерпретатор встраивает' и вы получите в качестве первых хитов

ГММВ

1 голос
/ 15 апреля 2011

Существует крошечный C: http://bellard.org/tcc/. Я не знаю ничего подобного для C ++.

0 голосов
/ 15 апреля 2011

Возможно, вы захотите взглянуть на язык крэка , основанный на llvm, он находится на ранней стадии, но, кажется, совсем близко от того, чего вы пытаетесь достичь.

0 голосов
/ 15 апреля 2011

Насколько я знаю, такого нельзя сделать для c или c ++.Вы должны запустить новый процесс (в котором вы выполняете компилятор) и требует установки компилятора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...