【发布时间】:2019-06-20 06:54:13
【问题描述】:
尊敬的程序员和开发人员,
我真的很想在 Windows 上试用 GTK+ 3。因此,我阅读了https://www.gtk.org/download/windows.php 的官方 GTK+ 下载说明,并使用 MSYS2 安装了所有内容。
现在我的 MSYS2 文件夹的 mingw64 子目录中有很多文件。
问题:我如何正确地包含所有这些?如何链接到 GTK+ 及其所有依赖项?我知道 Linux C/C++ 编译器有一个神奇的 pkg-config 属性,但不幸的是我真的对在 MSYS2 中编译我的项目不感兴趣。我愿意使用简单的 MinGW (64) 编译器。
谁能帮我使用 MSYS2 使用简单的 MinGW 64 位编译器为愚蠢的 C++ 项目生成的 .a、.h 和 .dll'a?
这会让我非常开心!
达斯月亮
€edit:我实际上已经从https://www.dropbox.com/sh/8d1qbh5dsp044on/AAB63l5I1eZks-QqjH6HXUJHa 下载了预编译的 GTK+ 版本。不幸的是,它只有 32 位,但我很快就会尝试自己编译整个 GTK+ 项目,就像 https://github.com/Wesley-Chan/GTK-for-Windows 的这个人所做的那样。
但是如果有人知道如何在 windows 下顺利构建 GTK+(尤其是 64 位),请告诉我!我真的很喜欢 GTK+ 示例应用程序,我真的很想制作自己的!
【问题讨论】:
-
MSYS2 使用其包管理器和 Linux 实用程序端口极大地简化了 Windows 的 C/C++ 软件开发。您使用 MSYS2 编译的程序可以从 MSYS2 中复制出来(连同所需的 DLL),并在最终用户的计算机上作为独立应用程序运行。如果你真的想通过不使用 MSYS2 让你的生活变得更艰难,你至少应该尝试自己做,然后在遇到无法解决的特定错误消息时提出特定问题。
-
您的具体消息告诉我,它无法找到对我调用的所有 gtk+ 函数的引用,尽管我将我的程序与我的 msys/mingw64/lib 文件夹中的每个 (!!) 库链接.
-
@David Grayson 如果我使用 MSYS2 下载 GTK+ 库并将我的应用程序与位于 lib/ 文件夹中的所有库链接,则没有任何反应。仍然缺少所有引用,就像我没有链接一样。但是,如果我在dropbox.com/sh/8d1qbh5dsp044on/AAB63l5I1eZks-QqjH6HXUJHa 使用这个人的预编译库并使用 -m32 为 32 位编译我的程序,一切都会按预期工作!我做错了什么?
-
我认为您可能会对使用 -L
包含在链接指令中的目录感到困惑,该目录中可能包含许多库,并且实际上使用 - 与特定库链接l (即 el)。仅仅因为一个目录中有很多库并不意味着您正在链接所有这些库。 -
哦,对不起,我忘了提到我正在使用 Makefile 查找位于我的库文件夹中的所有 *.a 文件,并在链接时使用它们,就像一个目标文件一样。正如我已经说过的,使用预编译库,一切都按预期工作。只有 MSYS2 中的库不能正常工作或独立运行或其他。
标签: c++ c++14 gtk3 mingw-w64 msys2