Я хочу расширить свое приложение C / C ++ с помощью Tcl.
Я написал следующий код, который должен создать Tcl Interpreter, но я хочу, чтобы он загружал пользовательский пакет, расположенный в ./user/tcl8.6.6/lib.
Проблема в том, что моя программа существует без загрузки чего-либо.
Поэтому после отладки программы я увидел, что в интерпретаторе после запуска строки, которая должна требовать моего пакета, будет результат: *myinterp = {result = 0x647d58 "can't find package user", freeProc = 0x0, errorLine = 1}
Я предполагаю, что Tcl Interperter, который вызывается этой строкой, находится где-то, у кого нет этого пакета в подпапке lib.
Итак, мой вопрос: как я могу узнать, каков путь к вызываемой оболочке (может быть, это что-то, связанное с TCL_LIBRARY или другими переменными среды?) И как я могу обновить его или добавить в него местоположение в папке содержит мой пользовательский пакет из моего кода C ??
Это код, который я написал:
int main() {
Tcl_Interp *myinterp;
int status;
printf ("Your Program will run ... \n");
myinterp = Tcl_CreateInterp();
std::string test = "package require user";
status = Tcl_Eval(myinterp,test.c_str());
std::string test = "set a 5";
status = Tcl_Eval(myinterp,test.c_str());
printf ("Your Program has completed\n");
return 0;
}