我尝试使用 cpan 安装 Tk,但出现错误。这是在 PC、Windows 10、Strawberry Perl 5.38.1 上
尝试 Tk 模块的基本安装,所有内容都会下载,makefile 会运行到某个点,但随后会因错误而终止。
我在命令行中使用它: cpan Tk
我收到此错误:
在 ../pTk/mTk/xlib/X11/Xlib.h:31 包含的文件中, 来自 tkWinPort.h:19, 来自 tkPort.h:32, 来自 tk.h:87, 来自 imgBMP.c:11: ../pTk/mTk/xlib/X11/X.h:182:34: 错误:数字常量之前有预期的标识符或“(” 182 | 182 #define ControlMask (1<<2) | ^ gmake[1]: *** [makefile:891: imgBMP.o] Error 1 gmake[1]: Leaving directory 'C:/perl/cpan/build/Tk-804.036-2/pTk' gmake: *** [makefile:1638: pTk/libpTk.a] Error 2 SREZIC/Tk-804.036.tar.gz C:\perl\c\bin\gmake.exe -- NOT OK Stopping: 'install' failed for 'Tk'.
这是 X.h 的代码部分,带有一些上下文(错误位于第 182 行):
177: /* Key masks. Used as modifiers to GrabButton and GrabKey, results of QueryPointer,
178: state in various key-, mouse-, and button-related events. */
179:
180: #define ShiftMask (1<<0)
181: #define LockMask (1<<1)
182: #define ControlMask (1<<2)
183: #define Mod1Mask (1<<3)
184: #define Mod2Mask (1<<4)
185: #define Mod3Mask (1<<5)
186: #define Mod4Mask (1<<6)
187: #define Mod5Mask (1<<7)
我不确定编译器版本是什么;它是与 Strawberry Perl 一起安装的任何东西,因为我之前没有安装 gcc/gmake。
有什么建议吗?我没看到什么? (顺便说一句:我检查过 - 空白中没有隐藏任何时髦的字符) 或者 - 有更好的方法来安装 Tk 吗?如果您必须仔细检查并编辑源代码,这有点违背了 cpan 的目的。
我自己也遇到了同样的错误。你找到解决办法了吗?