如何在 Windows 中更轻松地将 gtk 库与 cmake 链接? [英] How do I link gtk library more easily with cmake in windows?
问题描述
我现在以一种非常丑陋的方式手动包含所有必需的路径(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屋!