尝试运行使用GTK +构建的程序(例如,GIMP或gnuplot,或者使用GTK +构建的应用程序)时,会出现以下错误:
(文字内容如下:“程序入口点libintl_setlocale无法在动态链接库intl.dll中找到”)
错误并不总是“libintl_setlocale”,它取决于您的应用程序实际尝试调用的过程。
答案 0 :(得分:1)
问题很可能是使用了不同版本的intl.dll
库而不是应用程序所需的版本。使用GTK +构建的应用程序通常会附带此库的副本,并且该副本应该可以使用,但这并不意味着它将是Windows将加载的。
如果应用程序 附带了该库的副本,则可能会将其放在应用程序bin
目录中(例如,在GIMP v2.0中,它被找到在{GIMP_DIR}/32/bin/intl.dll
)。因此,要使应用程序运行,您应该确保这是您的操作系统为应用程序加载的库。
有多种方法可以做到这一点:
最简单的方法是将库的副本直接放在与应用程序可执行文件相同的目录中。 Windows始终在与可执行文件[ref]相同的目录中查找 first 中的DLL。这样做的好处是它不应该影响任何可能依赖于不同版本库的其他应用程序。
或者,您可以尝试跟踪错误加载的库的版本。例如,使用Dependency Walker检查应用程序并找出为init.dll
加载的文件。找到文件后,您需要找出一些方法来确保加载所需的副本而不是这个副本。例如,将所需的副本放在库搜索路径described here的较高位置。这可能需要用所需的文件替换不需要的文件:非常有用替换DLL,因为它可能会破坏使用它的其他应用程序。 一般,广泛使用的DLL保持向后兼容性,因此当您收到此错误时,可能意味着找到的库副本是旧版本,并且所需的副本是一个仍然有效的新版本。但是,这远远不是保证,因此请始终保留DLL的备份副本,而不是覆盖它。