LINUX.ORG.RU

> Можно ли встроить интерпретатор Tcl в программу cpp, то есть что б выполнялось на машине без установленного tcl?

Ты хорошо подумал, прежде чем вопрос задавать? :)

Да, можно: вкомпиль интерпретатор в свою программу или носи его с собой иным способом.

gaa ★★
()

да, можно. Аж двумя способами: 1) встроить tcl в C программу, примеры см. в документации 2) starkit, сделать один самодостаточный бинарник, в котором tcl/tk и C. В качестве примера см. браузер hv3 из TkHTML (и по ссылке оттуда описание starkits: http://www.equi4.com/starkit/started.html )

anonymous
()

а как ты собираешься "встраивать" Tcl так, чтобы зависимости остались?

вот как именно встроить - другой вопрос. проще всего тягать с собой библиотеку, содержащую eval :) в стандартной поставке Tcl таковые есть, тот же C++/Tcl их использование и предполагает

ну, ещё можешь сделать big wish, можешь транслировать код на tcl в C (мало ли что ты подразумеваешь под "встраиванием"), можешь написать свой интерпретатор Tcl (тогда зависимостей точно не будет)

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

Что то я окончательно запутался. Что имеется ввиду под зависимостями? И как вкомпилить интерпретатор в программу? библиотеку с собой таскать? Можно носом ткнуть?

placement_new ★★
() автор топика
Ответ на: комментарий от placement_new

>Да, мне б еще его в статическом виде. Я нашел tclstub и вроде читал где т что люди от него пляшут

tcl85.lib, tk85.lib. подключаешь, линкуешь, работаешь через C API (по сути всё что тебе нужно - eval), либо через C++/Tcl и C++ API

jtootf ★★★★★
()
Ответ на: комментарий от placement_new

>И как вкомпилить интерпретатор в программу? библиотеку с собой таскать?

ну да, это как бы самый простой способ. а как вообще использовать чужой код? либо исполняемым файлом, либо разделяемой библиотекой, либо статической линковкой, либо не уровне исходников втягивать. Tcl в этом плане не особенный :)

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

Собрал всп статически а оно мне выдает такого рода

< tclIOSock.c: warning: Using 'getservbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking

placement_new ★★
() автор топика
Ответ на: комментарий от placement_new

В каких случаях вообще интерпретатор создать нельзя?

placement_new ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.