我需要一个简单的 C 程序来创建 tcl 解释器,初始化 tcl 和 tk,然后加载给定的 tcl/tk 脚本。我想使用 tcl 和 tk 存根(以确保程序将在具有不同版本 tcl/tk 的计算机上运行)。我将使用这个程序而不是运行 wish(因为我有可移植性问题)。
#include <stdio.h>
#include <stdlib.h>
#include <tcl.h>
#include <tk.h>
int AppInit(Tcl_Interp *interp) {
if(Tcl_Init(interp) == TCL_ERROR) return TCL_ERROR;
if(Tk_Init(interp) == TCL_ERROR) return TCL_ERROR;
Tcl_EvalFile(interp,"myscript.tcl");
return TCL_OK;
}
int main(int argc, char *argv[]) {
Tk_Main(argc, argv, AppInit);
return 0;
}
我尝试使用以下命令编译(在 GNU/Linux 上)。程序编译没有错误,但随后因分段错误而停止。
gcc -I/usr/include/tcl8.5 -DUSE_TCL_STUBS -DUSE_TK_STUBS -o main.exe ../main.c /usr/lib/libtclstub.a /usr/lib/libtkstub.a