Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
gtk&x2B;没有msys2 mingw_Gtk_Libpng - Fatal编程技术网

gtk&x2B;没有msys2 mingw

gtk&x2B;没有msys2 mingw,gtk,libpng,Gtk,Libpng,在Windows上,尝试使用gtk+执行某些操作。我已经下载了Msys2和gtk+3.0 在msys2 mingw-w64终端中成功编译了所有gtk+3.0示例 现在我想进一步尝试在没有msys环境的情况下工作 我打开cmd并导航到编译示例可执行文件的位置。然后我通过输入“example.exe”来启动它们 libgio-2.0-0.dll丢失,这并不奇怪。我回去检查msys环境的路径环境,PATH=/mingw64/bin/:/usr/local/bin:/usr/bin/:/bin:/c/W

在Windows上,尝试使用gtk+执行某些操作。我已经下载了Msys2和gtk+3.0

在msys2 mingw-w64终端中成功编译了所有gtk+3.0示例

现在我想进一步尝试在没有msys环境的情况下工作

我打开cmd并导航到编译示例可执行文件的位置。然后我通过输入“example.exe”来启动它们

libgio-2.0-0.dll丢失
,这并不奇怪。我回去检查msys环境的路径环境,
PATH=/mingw64/bin/:/usr/local/bin:/usr/bin/:/bin:/c/Windows/System32:…blablabla

所以在cmd环境中,我做了
设置PATH=%PATH%;路径为/mingw64/bin并再次运行example.exe

这次它给出了一个非常奇怪的错误
找不到入口点充气验证(在dll libpng16-16.dll中)

所以我检查了一下,实际上dll中没有inflateValidate函数。在我看来,似乎有人认为函数在dll中,并试图调用它,但因为它不存在,所以失败了。我不明白的是,为什么它在msys环境中没有失败,但在windows环境中失败了。如果我要发布任何gtk应用程序,这会给我带来任何影响吗?我认为仅仅分发相关的dll就足够了

我尝试过将
mingw64/bin
path添加到path变量中,而是将所需的dll以1比1的方式复制到执行位置,但最后还是出现了相同的错误

我还尝试在我的计算机中搜索其他libpng*.dll,其中没有一个包含
inflateValidate
函数


如果有人知道发生了什么,请解释一下这个问题。

我参加聚会可能会很晚,但我昨天遇到了同样的问题(缺少充气验证符号),在检查zlib1.dll文件的内容后,可以确定该函数不在那里

我下载了另一个版本(特别是这个版本,尽管我与这个项目没有任何关联),并且看到了inflateValidate符号确实被声明了,所以我认为与您的文件捆绑在一起的zlib不符合libpng要求


这解决了我的问题。我希望它也能解决您的问题。

好的,似乎路径变量的顺序很重要,我将路径更改为
set PATH=pathto/mingw64/bin;%路径%
,然后它工作了。事实证明,inflateValidate是一个zlib函数,我没有复制zlib dll,因为没有弹出dll缺失错误。也许通过将mingw64/bin放在第一位,可以确保使用相同的编译器zlib和libpng。我将把问题和评论保留在这里,以备将来参考。我也有同样的错误,但它是由MSYS2中过时的zlib.dll引起的。我在MSYS2的shell中输入了
pacman-S mingw-w64-x86_64-zlib
来更新它,错误消失了。