Deployment 定制tcl环境

Deployment 定制tcl环境,deployment,package,tcl,Deployment,Package,Tcl,是否可以创建自己的tcl环境 基本上,我想要的是一个自己的Tcl8.5可执行文件,但其中嵌入了一些我自己的包 这将使分发tcl应用程序变得更加容易。看看和-这些系统可以构建一个多文件tcl运行时,您也可以自定义包含哪些包。看看和-这些系统可以构建一个多文件tcl运行时,您还可以自定义包含哪些软件包。当然可以。使用Tcl的标准方法之一是作为嵌入式语言:您只需将代码链接到Tcl库,然后从那里开始 如果您想让代码像tclsh的扩展版本一样工作,那么您只需在正确的位置调用,其中一个传入的参数是一个回调,

是否可以创建自己的tcl环境

基本上,我想要的是一个自己的Tcl8.5可执行文件,但其中嵌入了一些我自己的包


这将使分发tcl应用程序变得更加容易。

看看和-这些系统可以构建一个多文件tcl运行时,您也可以自定义包含哪些包。

看看和-这些系统可以构建一个多文件tcl运行时,您还可以自定义包含哪些软件包。

当然可以。使用Tcl的标准方法之一是作为嵌入式语言:您只需将代码链接到Tcl库,然后从那里开始

如果您想让代码像
tclsh
的扩展版本一样工作,那么您只需在正确的位置调用,其中一个传入的参数是一个回调,它将添加您想要添加的本地包/命令。调用这样一个函数是很传统的,但是你可以调用任何你真正想要的函数

否则,您的操作会更加手动

// Initialize the Tcl library first
Tcl_FindExecutable(argv[0]);

// Make the interpreter
Tcl_Interp *interp = Tcl_CreateInterp();

// Add your stuff in here

if (Tcl_EvalFile(interp, "your_main_script.tcl") != TCL_OK) {
    // IMPORTANT: If things go wrong, print what happened. Saves debugging time!
    fprintf(stderr, "error: %s\n", Tcl_GetString(Tcl_GetObjResult(interp)));
    exit(1);
}

// Delete and clean up
Tcl_DeleteInterp(interp);
exit(0);

当然有可能。使用Tcl的标准方法之一是作为嵌入式语言:您只需将代码链接到Tcl库,然后从那里开始

如果您想让代码像
tclsh
的扩展版本一样工作,那么您只需在正确的位置调用,其中一个传入的参数是一个回调,它将添加您想要添加的本地包/命令。调用这样一个函数是很传统的,但是你可以调用任何你真正想要的函数

否则,您的操作会更加手动

// Initialize the Tcl library first
Tcl_FindExecutable(argv[0]);

// Make the interpreter
Tcl_Interp *interp = Tcl_CreateInterp();

// Add your stuff in here

if (Tcl_EvalFile(interp, "your_main_script.tcl") != TCL_OK) {
    // IMPORTANT: If things go wrong, print what happened. Saves debugging time!
    fprintf(stderr, "error: %s\n", Tcl_GetString(Tcl_GetObjResult(interp)));
    exit(1);
}

// Delete and clean up
Tcl_DeleteInterp(interp);
exit(0);

这看起来不错,但我有一个问题。本例中的“your_main_script.tcl”是编译后需要的还是将其嵌入二进制文件中?这看起来很好,但我有一个问题。本例中的“your_main_script.tcl”是编译后需要的还是将其嵌入二进制文件中?