windows (MSYS2) 上编译的 gtkmm 程序缺少库

Posted

技术标签:

【中文标题】windows (MSYS2) 上编译的 gtkmm 程序缺少库【英文标题】:Missing libraries on compiled gtkmm program on windows (MSYS2) 【发布时间】:2018-11-25 18:58:50 【问题描述】:

经过无数次问题后,我终于成功编译(使用 \mingw64\bin\g++)我在 Windows 上使用 GTK+ 3 (gtkmm3) 的程序。

但是,现在尝试运行 .exe 文件失败,并抱怨以下缺少库:

libstdc++-6.dll
libgcc_s_seh-1.dll
libwinpthread-1.dll
libatkmm-1.6.1.dll

我猜我的路径可能有问题?但是我真的不知道该怎么做,因为我以前没有遇到过这样的事情。我会很感激任何帮助,我愿意提供解决它可能需要的任何信息^^

编辑:我知道我可以下载或找到这些库以使程序运行,但我想知道为什么它似乎无法找到它们,因为它们属于 gtkmm(至少对于 libatkmm-1.6 是这样) .1.dll)

【问题讨论】:

我通过在编译命令中添加 -static-libgcc -static-libstdc++ 来修复 libstddc++ 和 libgcc。现在,有更多的库被报告丢失。 解决此问题的方法是将您的依赖项与应用程序一起部署。静态链接库可以解决该问题,但通常不是解决方案。此外,libstdc++ 是编译器的一部分,而不是工具包。 【参考方案1】:

我自己找到了答案...我已将 C:\msys64\mingw64\bin 添加到我的 PATH 变量中。但是现在我面对我的程序在打开后立即关闭。好吧,我猜挑战还在继续;)

【讨论】:

为什么我的回答被否决了?我的问题是关于让应用程序运行,而不是部署它...... 非常感谢!至于让窗口工作,试试这个:developer.gnome.org/gtkmm-tutorial/stable/…

以上是关于windows (MSYS2) 上编译的 gtkmm 程序缺少库的主要内容,如果未能解决你的问题,请参考以下文章

请问windows visual studio上编译的C#程序是不是能在linux上运行?

链接在 cygwin 上编译的 .lib 文件

在 mingw-w64/msys2 中编​​译的应用程序,“应用程序无法正确启动(0xc00007b”

在 AXP 服务器上编译的问题

为啥在我的 Mac 上编译的 C++ 库不能在服务器上运行?

为啥在两台略有不同的机器上编译的库的行为略有不同?