无法识别C Tcl命令

无法识别C Tcl命令,c,tcl,codeblocks,C,Tcl,Codeblocks,使用代码块,我尝试运行在线找到的以下示例: #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"); myint

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

#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");
}
代码块中的intellisense在键入函数时会拾取该函数,因此我似乎链接了库并正确添加了包含。尽管如此,它在尝试运行时仍会抛出一个错误

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


谢谢。

如果您正在构建一个使用Tcl(而不是Tcl的扩展)的应用程序,那么您需要链接libtcl.so(或Tcl.dll,或操作系统上调用的任何库),而不是存根库

此外,在调用
Tcl\u CreateInterp
之前,您应该调用
Tcl\u FindExecutable
(一次!),以便可以初始化Tcl库本身(例如,它设置Tcl如何理解文件名)。它接受一个参数,通常是
argv[0]
NULL
;由于您有
argv
,请使用
argv[0]

...

Tcl_FindExecutable(argv[0]);

myinterp = Tcl_CreateInterp();

...

你需要将库添加到linkerI,我相信是我做的。项目->构建选项->链接器设置->添加;然后搜索目录。这两个.lib分别是
tclstub86_64
tkstub86
您的lib文件应该是.a而不是.lib文件;在lib文件夹findstr/s/m“\u imp\u Tcl\u CreateInterp”*.a中运行此命令;这将告诉您需要将什么文件添加到链接器我下载的库都是.lib。这是导致问题的原因吗?可能是的,请尝试下载mingw版本,而不是visual studio(.lib用于VS)
...

Tcl_FindExecutable(argv[0]);

myinterp = Tcl_CreateInterp();

...