Nis*_* BC 20 gtk configuration visual-studio-2010 visual-c++
我尝试在visual studio上配置gtk +但是无法正常工作.有人可以建议我使用正确的解决方案,如何在Visual Studio 2010上安装gtk
Man*_*elH 37
我让GTK +和VS2010一起工作,所以如果你想让它工作,那就准备好玩一些,因为这需要几分钟.
首先,下载最新的Windows All-In-One软件包.我在这里使用的GTK 2.24软件包的可选直接下载链接.直接链接是32位版本.我还没有测试64位版本,因为它仍然是实验性的.
下载完捆绑包后,将其解压缩到类似C:\gtk
或类似的内容中D:\gtk
接下来,我们将为GTK文件夹创建一个系统环境变量.打开命令提示符并写入:setx GTKDIR {Path to your GTK folder} /m
在我的情况下将是setx GTKDIR D:\gtk /m
我们还将添加GTK +构建的应用程序所需的.dll文件,以便在Windows上运行到我们的系统PATH中.为了使事情变得简单,我建议您使用PathEditor编辑系统PATH .现在将路径添加到GDK二进制文件夹,在我的例子中是D:\ gtk\bin到系统PATH.通过在命令提示符下键入PATH,确认已将GTK bin文件夹添加到PATH .
现在我们转到Visual Studio 2010并创建一个新项目.
File
->New
->Project
Visual C++
->Win32
->Win32 Console Application
Run Code Online (Sandbox Code Playgroud)
然后出现应用程序向导.
单击选择:
Windows Application
Empty Project
Run Code Online (Sandbox Code Playgroud)
单击"完成"继续.
在添加任何源文件之前,右键单击解决方案资源管理器中的项目名称,然后单击" 属性".现在转到配置属性,然后转到VC++目录.我们现在需要将GTK中的include和库文件添加到Include目录和库目录中.
您应该在Include目录中包含以下内容
$(GTKDIR)\lib\gtk-2.0\include
$(GTKDIR)\lib\glib-2.0\include
$(GTKDIR)\include
Run Code Online (Sandbox Code Playgroud)
和图书馆目录:
$(GTKDIR)\lib
Run Code Online (Sandbox Code Playgroud)
虽然我们仍然在项目属性的视图中,单击链接器,然后单击系统.在右侧查找SubSystem,然后单击下拉框.选择Windows/SUBSYSTEM:WINDOWS
接下来,我们必须为编译器和链接器生成标志.幸运的是,GTK +附带了一个名为pkg-config的小工具,我们将使用它自动为我们生成这些标志.pkg-config工具可以在GTK的bin文件夹中找到.在我的例子中,这是使用我们之前定义的系统变量的D:\ gtk\bin或%GTKDIR%\ bin.只需使用命令提示符导航到bin文件夹(将在那里输出创建的文本文件)并运行以下命令:
pkg-config --cflags gtk+-2.0 --msvc-syntax > compilerflags.txt
Run Code Online (Sandbox Code Playgroud)
这将创建我们需要的编译器标志并将它们存储在文本文件中.我的结果是编译器标志(我已经删除了标志-mms-bitfields,这是一个我们不需要的gcc标志):
-ID:/gtk/include/gtk-2.0 -ID:/gtk/lib/gtk-2.0/include -ID:/gtk/include/atk-1.0 -ID:/gtk/include/cairo -ID:/gtk/include/gdk-pixbuf-2.0 -ID:/gtk/include/pango-1.0 -ID:/gtk/include/glib-2.0 -ID:/gtk/lib/glib-2.0/include -ID:/gtk/include -ID:/gtk/include/freetype2 -ID:/gtk/include/libpng14
Run Code Online (Sandbox Code Playgroud)
我们将对链接器标志执行相同的操作:
pkg-config --libs gtk+-2.0 --msvc-syntax > linkerflags.txt
Run Code Online (Sandbox Code Playgroud)
链接器标志的结果:
/libpath:D:/gtk/lib gtk-win32-2.0.lib gdk-win32-2.0.lib atk-1.0.lib gio-2.0.lib pangowin32-1.0.lib gdi32.lib pangocairo-1.0.lib gdk_pixbuf-2.0.lib pango-1.0.lib cairo.lib gobject-2.0.lib gmodule-2.0.lib gthread-2.0.lib glib-2.0.lib intl.lib
Run Code Online (Sandbox Code Playgroud)
生成所有需要的标志后,我们需要将它们添加到我们的项目中.再次右键单击项目名称,然后单击" 属性".现在转到C/C++
并点击Command Line
.在右侧,您应该看到一个名为" 附加选项"的空框.将compilerflags.txt内容复制并粘贴到此框中.
完成上述操作后,单击" 链接器",然后单击" 命令行".再一次,只需将linkerflags.txt文件的内容复制并粘贴到Additional Options框中即可.当我们在这里时,添加一个最后一个链接器标志/ ENTRY:mainCRTStartup这个标志告诉Visual Studio我们想要使用标准main()而不是Microsoft的_tmain()作为我们的主程序入口点.
最后,在Source Files文件夹中,使用以下命令创建并添加新的.cpp文件:
#include <gtk-2.0\gtk\gtk.h>
int main(int argc, char* argv[])
{
gtk_init(&argc, &argv);
GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_usize(window, 300, 200);
g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
gtk_window_set_title(GTK_WINDOW(window), "GTK+ with VS2010");
gtk_widget_show(window);
gtk_main();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在一切都准备好编译,链接和运行.如果一切顺利,您应该受到以下问题的欢迎:
那很有趣,对吧?:)
归档时间: |
|
查看次数: |
24790 次 |
最近记录: |