长时间中断后的问候。
我正在 Cygwin-64 下的 Windows-7(古怪反动,我;-)中工作。
我正在重新审视 10 多年前发布到 CPAN 的 Perl 模块。 具体来说: Math::Yapp 。 解压缩文件后,我进入目录 Math-Yapp-1.07(在我的“下载”文件夹下),然后按照标准说明:
$ perl Makefile.PL
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Math::Yapp
Writing MYMETA.yml and MYMETA.json
到目前为止,一切都很好。 下一步是简单的制作。或者应该是这样。 但是,这对我来说没有任何输出。 这里有一种沉沦的感觉...
$ make
$ echo $?
127
因此找不到 make 尝试运行的某些命令。 但即使
make --debug=VERBOSE
也不会产生输出并以 $? 退出。 127!
该模块最初是在 Perl 5.014 下创建的,我正在运行 5.036。这是完整的
Makefile.PL:
use 5.014002;
use ExtUtils::MakeMaker;
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
WriteMakefile(
NAME => 'Math::Yapp',
VERSION_FROM => 'lib/Math/Yapp.pm', # finds $VERSION
PREREQ_PM => {}, # e.g., Module::Name => 1.1
($] >= 5.005 ? ## Add these new keywords supported since 5.005
(ABSTRACT_FROM => 'lib/Math/Yapp.pm', # retrieve abstract from module
AUTHOR => '(*my name*) <(*my email address*)>') : ()),
);
我怀疑这个论坛上的很多人都经历过这种情况并且有神奇的解决方案。 但至少有某种方法可以强制某些信息脱离 make 可能会有所帮助! 这在过去是有效的。
感谢您的帮助。
-- 沮丧的杰克..
make --debug=VERBOSE
我期望一些输出来查看 make 失败的地方。回应 Chobora 和 GM: Choroba,输入“make”并没有生成“命令未找到”的事实表明它确实已安装。啊,按照G.M.的说法,它是什么版本?好吧,你在那里发现了一些东西,GM:“make --version”也没有产生任何输出,并且还留下了 127 退出代码。
2024-11-01: 在我发布从
strace make
命令得到的错误框后,我意识到命令窗口上有输出。 这是输出:
$ strace make
--- Process 93164 created
--- Process 93164 loaded C:\Windows\System32\ntdll.dll at 0000000077ba0000
--- Process 93164 loaded C:\Windows\System32\kernel32.dll at 0000000077a80000
--- Process 93164 loaded C:\Windows\System32\KernelBase.dll at 000007fefd7d0000
--- Process 93164 loaded C:\cygwin64\bin\cygwin1.dll at 000007fe9fcc0000
--- Process 93164 loaded C:\cygwin64\bin\cygguile-3.0-1.dll at 000000055a860000
--- Process 93164 loaded C:\cygwin64\bin\cygcrypt-2.dll at 00000003dc0d0000
--- Process 93164 loaded C:\cygwin64\bin\cygffi-8.dll at 00000004e3e60000
--- Process 93164 loaded C:\cygwin64\bin\cyggc-1.dll at 00000004c4d40000
--- Process 93164 loaded C:\cygwin64\bin\cyggcc_s-seh-1.dll at 000000050caa0000
--- Process 93164 loaded C:\cygwin64\bin\cyggmp-10.dll at 00000004029c0000
--- Process 93164 loaded C:\cygwin64\bin\cygiconv-2.dll at 00000003d7bc0000
--- Process 93164 loaded C:\cygwin64\bin\cygintl-8.dll at 00000005ee2d0000
--- Process 93164 loaded C:\cygwin64\bin\cygunistring-5.dll at 00000004a6da0000
--- Process 93164, exception c0000139 at 0000000077c685b8
--- Process 93164 exited with status 0xc0000139
因此该异常一定是无法加载入口点 mbrtoc32 的地方。
叹息。 我相信我有答案:在我的情况下拉一个伽罗瓦:Windows-7 下的 Cygwin 中没有解决方案。 :-((
我是如何得出这个结论的? 我安装了 Guardian 浏览器,以便我女儿可以参加在线考试。 它在启动时就吐了,并出现了几乎相同的错误。 讲师告诉她至少需要在 Windows-10 上执行此操作。 我正在我的 Windows-11 PC 上重做该项目,并且 make 工作得很好。
是的,我想我可以下载 make 的源代码并在我的 Windows-7 Cygwin 上编译它,但现在是时候承认我在该操作系统上的时代已经过去了。 正如博格人可能会说的那样,怀旧是无关紧要的。而坚持是徒劳的。 (我认为他们从来没有这么说过!)