簡體   English   中英

如何在 Windows 上安裝 GTK+ 3.0?

[英]How do you install GTK+ 3.0 on Windows?

嘗試在 Codeblocks Win7 上設置 GTK+ 3.0。 很難找到確切的方法。

GTK 網站將您引導至 msys2。 似乎曾經在 GTK 站點上直接下載了不再存在的多合一 Windows 包。

按照說明安裝和更新 msys2 后,我在安裝的文件或 GTK 引導您訪問的 mysys 網站上沒有看到對 GTK+ 的引用。

就不必要和愚蠢地做一些應該簡單的事情而言,它似乎非常linuxy。 也許我遺漏了一些東西,但它不應該像下載壓縮文件夾、提取和設置路徑一樣簡單嗎?

按照這個速度,我可以更快地學習 C++ 並使用 Qt。

問題在標題中,我很驚訝我不得不問這個問題,似乎谷歌應該完全涵蓋這個問題,但我發現的所有內容都與 GTK 網站上不再提供的下載有關。 我找不到有關 msys2 和 GTK+ 3.0 的信息。

提前致謝。

歡迎來自未來的 Google 用戶! 自從我寫了這個答案,GTK+ 網站現在有官方安裝說明,涵蓋了我在下面所說的內容,但有更多的細節和更少的痛苦。 請參閱該頁面。 由於歷史原因,以下答案已被保留。

GTK+ 網站的問題在於沒有人維護這些二進制發行版。 以前的 Windows 二進制發行版是針對 GTK+ 3.6,我相信它是在 2012 年發布的,如果不是更早的話。 當前版本是 3.16,而 3.18 距離發布還有幾天的時間 MSYS2 是唯一受支持的安裝機制,並且它的更新頻率足夠高。

話雖如此,如果您使用 MSYS 路由,則需要單獨安裝 GTK+; MSYS 沒有隨附開箱即用的 GTK+。 從...開始

pacman -Ss gtk3

這應該會為您提供可能要安裝的軟件包列表,包括適用於 32 位和 64 位 MinGW 的 GTK+ 庫。 我現在忘記了他們的確切名字。

一旦你找到你想要的,使用

pacman -S package-name-here

安裝它。 然后,從開始菜單的 MSYS 文件夾中打開 MinGW 32 位或 64 位 Shell 以開始開發。

如果您想要一個用於 GTK+ 編程的傳統 IDE,請查找 GNOME Builder 或 Anjuta。 對於圖形 GUI 設計師,請查找 Glade。

哈利路亞,我找到了為 Windows 獲取 GTK 的非 linux 版本。

有人很友好地將 GTK 文件上傳到 Dropbox,只需下載並解壓縮即可。 這是其他遇到此 GTK/msys2 災難的人的鏈接。

https://www.dropbox.com/sh/8d1qbh5dsp044on/UgkALzhlqH

這些文件真的應該可以在 GTK Windows 下載頁面上找到,它令人難以置信。

關閉此線程,viva windows。

我同意 GNOME 社區在這一點上有點傲慢。 他們使 GTK+ 安裝幾乎與 Linux 安裝相同,這有點像在麥當勞給你百事可樂。

最糟糕的是,它迫使你使用他們自己的廢話,以至於他們甚至會告訴你選擇什么 IDE,你將如何構建你的應用程序,你的應用程序中會有什么......(沒什么私人的,我實際上總是更喜歡Linux,我只是不偏不倚)


現在具體來說,您明確提到了代碼塊。 不要使用 code::block 的 GTK+ 項目,它已經過時了。 你當然可以修改腳本或創建自己的腳本,但它仍然會減慢你的速度,我們程序員很珍惜我們的時間(我認為)

安裝(至今)GTK3 版本的過程。 3.22.16 在 Windows 7 上與 Code::Blocks 一起使用變得非常簡單。 首先下載MSYS2並在 msys2 shell 中輸入:

pacman -S mingw-w64-x86_64-gtk3

(輸入y確認)然后

pacman -S mingw-w64-x86_64-toolchain base-devel (以確保您擁有 pkg​​-config 的預編譯二進制文件並確保您擁有最新版本的 gcc)

然后你在 CodeBlocks 中有一些工作,首先設置新的編譯器,從 Codeblocks 的編譯器設置 -> 工具鏈可執行文件。 新編譯器應位於C:\\msys64\\mingw64 (C 或您安裝 MSYS 的磁盤)

然后在 Codeblocks 的編譯器設置 -> 搜索目錄中鏈接一些庫: 在此處輸入圖片說明 這些庫足以運行這個簡單的示例代碼:

#include <gtk/gtk.h>

static void activate (GtkApplication* app, gpointer user_data)
{
    GtkWidget *window;

    window = gtk_application_window_new(app);
    gtk_window_set_title(GTK_WINDOW (window), "Window");
    gtk_window_set_default_size(GTK_WINDOW(window), 200, 200);
    gtk_widget_show_all(window);
}

int main (int argc, char *argv[])
{
    GtkApplication *app;
    int status;

    app     = gtk_application_new("org.gtk.example", G_APPLICATION_FLAGS_NONE);
    g_signal_connect(app, "activate", G_CALLBACK (activate), NULL);
    status  = g_application_run(G_APPLICATION (app), argc, argv);
    g_object_unref(app);

    return status;
}

並有這樣的結果: 在此處輸入圖片說明

幾天前,我向 gtk 的一位維護者發送了一封電子郵件,以尋求有關 vs 2017 的幫助,這是這封信。 此后,我選擇在 windows 上使用 gtk 2.0

這是我的

我安裝了msys2 ,我注意到,在這個文件夾下有許多頭並祝.\\msys64\\mingw64\\include所以,我想知道如果我可以直接包括在那些文件msys64到VS 2017 並讓vs 2017使用文件夾下的lib。像這樣......

這是他的

首先,我不建議使用MSYS版本,除非你確信-你不嘗試使用文件結構在你的代碼與GLib中使用的那些等-The glibconfig.h您正在使用的匹配glibcocnfig.h.win32在您使用的 GLib 版本的源代碼壓縮包中,因為針對 GLib 構建的所有內容都會受到它的影響。

如果您仍然決定沿着這條路線走,則需要在鏈接時指定庫。 請參閱Linker->Input->Additional Dependencies ,您至少需要以下.lib files ,以分號分隔:

gtk-3.0.lib(或gtk-3.lib)

gdk-3.0.lib(或 gdk-3.lib)

gdk_pixbuf-2.0.lib

pangocairo-1.0.lib

pango-1.0.lib

atk-1.0.lib

gio-2.0.lib

gobject-2.0.lib

gmodule-2.0.lib

glib-2.0.lib

cairo-gobject.lib

cairo.lib

內部庫

可能還有fontconfig.libfreetype.lib ,因為 msys64 版本可能包含對它們的支持。

您還需要鏈接到您可能用於作業的任何其他庫。 在這些庫前加上尾隨; %(AdditionalDependencies) (don't remove %(AdditionalDependencies))之前%(AdditionalDependencies) (don't remove %(AdditionalDependencies))

帶着祝福和歡呼!

嗯...我花了幾天時間將我的程序移植到 Windows,在與gtk 3.x斗爭之后,我發現您可以使用gtk 2.x來避免所有這些麻煩。 這些是一些名為All-in-one bundle舊文件All-in-one bundle盡管知道這一點很重要,但它存在一些安全問題(另外您需要將其重寫為 gtk 2.0)但如果您主要使用 linux 並且只想它可以在 Windows 上運行,例如我建議您使用舊All-in-one bundle用於 gtk 2.x

https://download.gnome.org/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip.mirrorlist

如果您正在尋找除 Msys2 之外還提供最新的、與 MSVC 兼容的 GTK3 內容的項目,您應該查看gvsbuild和 Microsoft 的vcpkg 在幕后,前者使用 python,后者使用 cmake。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM