错误:未找到 tcl.h(没有此文件或目录)

错误:未找到 tcl.h(没有此文件或目录)

我正在尝试使用“make”命令安装某些东西,但它给出了致命错误:tcl.h 没有这样的文件或目录。我是 Linux 新手,有人能帮助我吗?

答案1

这意味着您缺少 tcl 开发文件。最简单的检查方法是访问:http://packages.ubuntu.com/并把“搜索包内容”字段中的“tcl.h”。如果你这样做,你会发现 tcl.h 可以在许多包中找到,你需要安装其中一个:

sudo apt-get install tcl8.6-dev

答案2

一旦安装了 Tcl dev 包,您可能会遇到期望 tcl.h 位于的代码/usr/include/,但为了方便安装多个版本的 Tcl,Ubuntu 将 tcl.h 放在/usr/include/tcl/- 请注意额外的目录级别。

替换:#include <tcl.h>#include <tcl/tcl.h>您尝试构建的源代码中应该可以解决这个问题。

答案3

当我尝试手动安装 python3.9 并修复 tinker import 错误时,发生了这种情况 Error:ModuleNotFoundError: No module named '_tkinter'

然后,我知道,当您尝试手动配置时,您必须传递其他参数。

./configure --with-tcltk-includes="-I/Library/Frameworks/Tcl.framework/Headers -I/Library/Frameworks/Tk.framework/Headers" --with-tcltk-libs="/Library/Frameworks/Tcl.framework/Tcl /Library/Frameworks/Tk.framework/Tk"
make

正如 labarna 所说,您可以在 ubuntu 上搜索软件包并安装它们。然后,在下载正确的软件包时,它仍然给出了另一个。

gcc -fPIC -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fvisibility=hidden -I./Include/internal -DWITH_APPINIT=1 -I./Include -I. -I/usr/include/x86_64-linux-gnu -I/usr/local/include -I/root/fix/Python-3.9.11/Include -I/root/fix/Python-3.9.11 -c /root/fix/Python-3.9.11/Modules/_tkinter.c -o build/temp.linux-x86_64-3.9/root/fix/Python-3.9.11/Modules/_tkinter.o -I/Library/Frameworks/Tcl.framework/Headers -I/Library/Frameworks/Tk.framework/Headers /root/fix/Python-3.9.11/Modules/_tkinter.c:46:10: 致命错误:tk.h:没有这样的文件或目录 46 | #include <tk.h> | ^~~~~~

您可以在 下看到其预期包/usr/local/include。并且,您的下载文件可能安装在其他位置。您必须复制所需文件或创建符号链接(软链接)到正确的目录(对我来说是/usr/local/include

相关内容