如何在 Windows 中更轻松地将 gtk 库与 cmake 链接? [英] How do I link gtk library more easily with cmake in windows?

查看:26
本文介绍了如何在 Windows 中更轻松地将 gtk 库与 cmake 链接?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我现在以一种非常丑陋的方式手动包含所有必需的路径(gtk 包位于 D:/Tools/gtk+-bundle_2.20.0-20100406_win32):

I'm now doing it in a very ugly way by manually including all the required path(the gtk bundle is at D:/Tools/gtk+-bundle_2.20.0-20100406_win32):

include_directories(D:/Tools/gtk+-bundle_2.20.0-20100406_win32/include/gtk-2.0 D:/Tools/gtk+-bundle_2.20.0-20100406_win32/include/glib-2.0 D:/Tools/gtk+-bundle_2.20.0-20100406_win32/lib/glib-2.0/include D:/Tools/gtk+-bundle_2.20.0-20100406_win32/include/cairo D:/Tools/gtk+-bundle_2.20.0-20100406_win32/include/pango-1.0 D:/Tools/gtk+-bundle_2.20.0-20100406_win32/lib/gtk-2.0/include D:/Tools/gtk+-bundle_2.20.0-20100406_win32/include/atk-1.0)
link_directories(D:/Tools/gtk+-bundle_2.20.0-20100406_win32/lib)

target_link_libraries(MyProgram gtk-win32-2.0.lib)

推荐答案

2019-10-29 虽然这个答案仍然有效,但请注意,自 2011 年我的原始答案以来,CMake 已经发展了很多.对现代 CMake"进行了一些搜索,因为有许多语法和最佳实践的变化.

原答案:

只需将包含 pkg-config 的目录(在您的 gtk-bundle/bin 目录中)添加到您的 PATH 中.这样,CMake 就会找到它.

Just add the directory that contains pkg-config (which is in your gtk-bundle/bin directory) to your PATH. That way, CMake will find it.

这是用 GTK2 编写的示例应用程序的 CMakeLists.txt:

Here's a CMakeLists.txt for a sample application written in GTK2:

cmake_minimum_required (VERSION 2.4)
project (gtk-test)

find_package (PkgConfig REQUIRED)
pkg_check_modules (GTK2 REQUIRED gtk+-2.0)

include_directories (${GTK2_INCLUDE_DIRS})
link_directories (${GTK2_LIBRARY_DIRS})
add_executable (gtk-test main.c)
add_definitions (${GTK2_CFLAGS_OTHER})
target_link_libraries (gtk-test ${GTK2_LIBRARIES})

以及我的测试应用的 main.c 文件:

And the main.c file for my test app:

#include <gtk/gtk.h>

int main (int argc, char **argv)
{
    GtkWidget *window;

    gtk_init (&argc, &argv);

    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title (GTK_WINDOW (window), "Hello world !");
    g_signal_connect (G_OBJECT (window), "destroy", gtk_main_quit, NULL);

    gtk_widget_show_all (window);
    gtk_main ();

    return 0;
}

我在 Win XP 上使用 CMake 2.4 和 CMake 2.8 以及 MinGW 对其进行了测试,并且可以正常工作.它也应该在 MinGW 之外工作.

I tested it on Win XP with CMake 2.4 and CMake 2.8 and MinGW, and it works. It should also work outside MinGW.

这篇关于如何在 Windows 中更轻松地将 gtk 库与 cmake 链接?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆