在Windows下安装gtk并使用gcc编译?

6
我在c:/programfiles安装了gcc(也设置为路径变量),并从http://www.gtk.org/download-windows.html下载了所有必要的gtk文件,包括glib、gtk、pango、atk和cairo。虽然我不知道如何使用gcc编译使用gtk的c程序。我该如何设置一切使其正常工作?(我不知道每个zip文件放在哪里。)基本上我真的不知道从哪里开始。

你想编译GTK,还是只编译使用GTK的应用程序? - Soo Wei Tan
我只想使用GTK编写GUI应用程序并进行编译。我该怎么做? - silent
1个回答

17

好的,要在Windows上安装和使用GTK+并与MinGW一起使用,您可以按照以下步骤进行操作。我会尝试让它们简单易懂,不用担心:

  1. 安装MinGW,因为你已经安装过了,所以我不会详细解释这一步。
  2. 下载GTK+全套包(可能有您不需要的东西...但这种方式应该有效)。
  3. 解压缩包的内容,您可以将其解压缩到安装MinGW的同一文件夹中,也可以将其解压缩到另一个文件夹中,都没有关系。
  4. 启动命令提示符,进入您提取捆绑软件包的bin目录并运行:

    pkg-config --cflags --libs gtk+-win32-2.0

  5. 它将打印编译标志和库的列表,以链接您的项目。现在,复制它们并创建一个批处理文件(.bat或Windows命令脚本.cmd)如下:

    set VAR=FLAGS
    start cmd

    其中VAR是一个变量名(例如GTK),FLAGS是先前命令(pkg-config)的输出。

  6. 每当您想要编译使用GTK+的内容时,双击该文件,GTK+标志将在VAR中。例如,您可以这样编译:

    gcc foo.c %VAR%

您可以创建用户环境变量而不是批处理文件,并将标志存储在其中,这样您就可以从普通命令提示符中进行编译。我没有描述它,因为执行此操作的方法因您所拥有的Windows版本而异。通常,您可以在高级系统属性中找到它。

当你对GTK+编程更加自信时,你可能不会使用所有的软件包、标志或以不同的方式重新排序它们,可以使用makefiles代替在环境变量中设置编译标志和库……

但是现在,这将让你入门。

此外,你将动态链接到GTK+,所以要么正确的库位于你的项目目录中,要么在运行时可以从路径访问它们。


嘿,感谢回复!现在它可以工作了,尽管我必须在与libgtk-win32.dll相同的文件夹中,您说的链接是如何实现的? - silent
2
编译时,你会动态链接到GTK+ libs,这意味着你的程序需要这些库才能工作。它们需要与你的程序可执行文件在同一个文件夹中,或者必须在PATH环境变量中(已经安装并设置GCC在PATH变量中)。如果将安装GTK+的“bin”文件夹添加到路径中,则即使不在GTK+ libs所在的相同文件夹中,它也可以正常工作。 - Xandy
1
“GTK+ 全合一捆绑包”链接似乎已经失效了。” - AntonioCS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接