32 位 MSYS2 上的 p11tool 无法加载

p11tool on 32bit MSYS2 cannot load

我正尝试在 32 位 MSYS2 控制台上 运行 p11tool。它说它无法加载 libtasn1-6.dll。谁能知道原因和解决方法?

$ pacman -S mingw-w64-i686-gnutls
warning: mingw-w64-i686-gnutls-3.6.8-2 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...

Packages (1) mingw-w64-i686-gnutls-3.6.8-2

Total Installed Size:  11.73 MiB
Net Upgrade Size:       0.00 MiB

:: Proceed with installation? [Y/n] Y
(1/1) checking keys in keyring                     [#####################] 100%
(1/1) checking package integrity                   [#####################] 100%
(1/1) loading package files                        [#####################] 100%
(1/1) checking for file conflicts                  [#####################] 100%
(1/1) checking available disk space                [#####################] 100%
:: Processing package changes...
(1/1) reinstalling mingw-w64-i686-gnutls           [#####################] 100%
$ pacman -S mingw-w64-i686-libtasn1
warning: mingw-w64-i686-libtasn1-4.14-1 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...

Packages (1) mingw-w64-i686-libtasn1-4.14-1

Total Installed Size:  0.48 MiB
Net Upgrade Size:      0.00 MiB

:: Proceed with installation? [Y/n] y
(1/1) checking keys in keyring                     [#####################] 100%
(1/1) checking package integrity                   [#####################] 100%
(1/1) loading package files                        [#####################] 100%
(1/1) checking for file conflicts                  [#####################] 100%
(1/1) checking available disk space                [#####################] 100%
:: Processing package changes...
(1/1) reinstalling mingw-w64-i686-libtasn1         [#####################] 100%
$ p11tool --help
C:/msys32/mingw32/bin/p11tool.exe: error while loading shared libraries: libtasn1-6.dll: cannot open shared object file: No such file or directory
$ whereis libtasn1-6.dll
libtasn1-6: /mingw32/bin/libtasn1-6.dll

我学习了一种技术来判断 MinGW 应用程序实际丢失的文件。 运行CMD命令可以显示准确的错误信息。

对我来说,它说 "The program can't start because "libhogweed-5.dll" is missing from your computer."

我的电脑有libhogweed-4.dll,安装libhogweed无法解决。然后我用谷歌搜索,发现 mingw-w64-x86_64-nettle 包含 "libhogweed-5.dll"。由于它是 64 位的,我将 x86-64 读作 32 位的 i686。

因此解决方案是;

$ pacman -S mingw-w64-i686-nettle

我认为是mingw-w64-i686-gnutls特定版本的问题,稍后会修复。