Пытался проверить похожие вопросы, но все еще есть проблемы.
Я скачал, скомпилировал и установил Tcl / Tk 8.6.8 и включил тестовые программы, работающие в порядке, так что, насколько я вижу, установка в порядке (под управлением Linux Red Hat 7.2).
У меня есть старая программа на C ++ со следующим кодом, который завершается ошибкой в команде «Tc_EvalFile», сообщая «конфликт версий для пакета« Tk »: есть 8.6.8, нужно ровно 8.6»:
char *tclFile = getenv("TCL_SOURCE"); //a tkcon.tcl file
if (tclFile != (char *)NULL) {
if (Tcl_Init(interp) == TCL_ERROR) {
... } // no error
if (Tk_Init(interp) == TCL_ERROR) {
... } // no error
if (Tcl_EvalFile(interp, tclFile) == TCL_ERROR) {
cout << " " << Tcl_GetStringResult(interp) << endl; //returns "version conflict...."
return TCL_ERROR;
}
}
LD_LIBRARY_PATH, TK_LIBRARY и TCL_LIBRARY и TCL_SOURCE установлены.
Попытался установить "8.6" в init.tcl / tk.tcl, но затем я получаю "Не могу найти пригодный для использования tk.tcl".
Код ранее работал нормально на Solaris с Tcl / Tk версии 8.4.