我正在一个Ubuntu系统上工作。 我的目标是基本上使用TCL / TK的GUI工具制作C语言的IDE。 我安装了tcl 8.4,tk8.4,tcl8.4-dev,tk8.4-dev,并在我的系统中有tk.h和tcl.h头文件。 但是,当我运行一个基本的Hello World程序时,它显示了很多错误。
#include \”tk.h\” #include \”stdio.h\” voID hello() { puts(\”Hello C++/Tk!\”); } int main(int,char *argv[]) { init(argv[0]); button(\”.b\”) -text(\”Say Hello\”) -command(hello); pack(\”.b\”) -padx(20) -pady(6); }
一些错误是
tkDecls.h:644: error: expected declaration specifIErs before \’EXTERN\’ /usr/include/libio.h:488: error: expected \’)\’ before \’*\’ token In file included from tk.h:1559,from new1.c:1: tkDecls.h:1196: error: storage class specifIEd for parameter \’TkStubs\’ tkDecls.h:1201: error: expected \’=\’,\’,\’;\’,\’asm\’ or \’__attribute__\’ before \’*\’ token /usr/include/stdio.h:145: error: storage class specifIEd for parameter \’stdin\’ tk.h:1273: error: declaration for parameter \’Tk_PhotoHandle\’ but no such parameter
任何人都可以告诉我如何纠正这些错误? 请帮忙…
QPalette不能在子QWidget上工作
崇高文本3 – 编译程序并在terminal中运行
SIGPIPE,破碎的pipe道
我想用C ++在windows *** 作系统上得到一个Gpu的名字
生成(非常)大的非重复整数序列,无需预先混洗
如何正确地等待execve完成?
链表或散列表?
valgrind显示的额外程序内存消耗
gdb ptrace *** 作不允许
在windows中分配内存
这根本不是一个有效的程序。 你试图做的是将Tcl和Tk嵌入到你的C应用程序中。 阅读Tcl / Tk书中的相关章节或研究Tcl Wiki(例如1 )。
要运行Tcl或Tk命令,必须正确初始化Tcl_Interp 。 所以至少你必须初始化Tcl库并创建一个解释器。 那么对于Tk你将需要初始化该库并运行一个事件循环。 Tcl_AppInit的文档讨论了这个和Tcl源代码中的tclappInit.c文件(或Tk中的tkAppInit.c ),告诉你如何设置你的应用程序。 通常,您可以使用提供的tkAppInit文件作为“main”,并将您的自定义应用程序初始化放入从Tcl或Tk主函数调用的Tcl_AppInit函数中。
从C调用Tk函数是不好的建议。 定义脚本并在Tcl中写入Tk位。 即使Tk本身也使用Tcl脚本(从library/*.tcl )创建标准对话框。
但是……不应该使用<>来包含系统范围? 和button(\”..\”) -text(\”…\”) ..不是很好的C语法,除非tk.h给出强大的宏button和-text(这是有问题的,即不可能的),而我怀疑事实并非如此(事实上并非如此)…
你可能对这个感兴趣,而且对这个东西的阅读也是值得的。 也(也许更有趣),阅读例如这个
总结
以上是内存溢出为你收集整理的包括c程序中的tk.h和tcl.h全部内容,希望文章能够帮你解决包括c程序中的tk.h和tcl.h所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容