C Tcl 命令不被识别

C Tcl commands not being recognized

使用代码块,我正在尝试 运行 我在网上找到的以下示例:

#include <stdio.h>
#include <tcl.h>

main (int argc, char *argv[]) {
    Tcl_Interp *myinterp;
    char *action = "set a [expr 5 * 8]; puts $a";
    int status;

    printf("Your Program will run ... \n");

    myinterp = Tcl_CreateInterp();
    status = Tcl_Eval(myinterp, action);

    printf("Your program has completed\n");
}

然而,运行宁这会产生错误:

C:/Users/amlut/Downloads/C/run/main.c:11: undefined reference to `_imp__Tcl_CreateInterp'
C:/Users/amlut/Downloads/C/run/main.c:12: undefined reference to `_imp__Tcl_Eval'

Codeblocks 中的 intellisense 会在输入时提取该函数,所以我似乎链接了库并正确添加了包含。尽管如此,它在尝试 运行.

时仍会抛出错误

如果需要任何其他信息,我很乐意提供。

谢谢。

如果您正在构建一个使用 Tcl(而不是 Tcl 的扩展)的应用程序,那么您需要 link 反对 libtcl.so(或 tcl.dll,或任何库是调用了你的OS),不是存根库!

此外,您应该在调用 Tcl_CreateInterp 之前调用 Tcl_FindExecutable(一次!),以便可以初始化 Tcl 库本身(例如,它设置 Tcl 如何理解文件名)。它有一个参数,通常是 argv[0]NULL;因为你有 argv,所以使用 argv[0].

...

Tcl_FindExecutable(argv[0]);

myinterp = Tcl_CreateInterp();

...