Есть ли что-то вроде libtcc для C ++ или чрезвычайно быстрый компилятор C ++? - PullRequest
2 голосов
/ 19 мая 2009

Существует очень хороший компилятор tcc и его библиотека libtcc, которая позволяет прямую компиляцию кода внутри кода. т.е. позволяет создавать самогенерируемый код.

Я ищу похожую библиотеку для C ++, если таковая существует. Или мне нужен очень быстрый и достаточно хороший компилятор C ++, чтобы я мог запустить его для генерации общего объекта и dlopen. Меня не волнует производительность целевого кода.

Есть что-нибудь подобное?

Платформа UNIX, ELF. Только с Linux все в порядке.

Ответы [ 3 ]

0 голосов
/ 23 мая 2009

Возможно, вы захотите проверить LLVM . Это промышленный силовой компилятор (должен быть включен в gcc), разработанный Apple и имеющий широкую поддержку, и пользующийся большим успехом в различных средах JIT, как вы описываете.

0 голосов
/ 27 января 2010

Используйте system() для вызова c++ или libtool, чтобы создать свой .so.

g ++ -O1 работает довольно быстро, особенно если вы используете предварительно скомпилированный заголовок для сборки.

0 голосов
/ 19 мая 2009

Вы можете попробовать с компилятором Intel . Похоже на то, что глагол выглядит быстрее, чем g ++ во время компиляции, и в оптимизациях, которые он обеспечивает в полученном двоичном файле.

Также вы можете попробовать перекомпилировать двоичный файл "g ++" из исходного архива и запросить оптимизацию для хоста, на который вы нацеливаетесь. Может быть, это может сделать это быстрее, чем компилировать любой код (?)

Какое бы решение вы ни выбрали, я советую вам оставить один и тот же компилятор для вашего приложения и вашего "плагина". В противном случае я подозреваю некоторые проблемы ABI, которые могут возникнуть при использовании двух разных компиляторов в одном проекте приложения. (Я только подозреваю ... Поскольку у меня никогда не было таких проблем, но просматривая ТАК вопросы, я уже видел такие проблемы для других ...)

...