在Visual Studio 2012中编译GTK3程序

随着Windows的Gtk 3发布,我想到升级我的Gtk 2 C应用程序以利用新的GtkGrid小部件。

该程序在linux下编译或在Windows下使用MinGW(带代码块),但是当我在Visual Studio 2012下尝试相同的文件集时,给我50个左右的编译错误,说gutils.h,gtrashstack.h和gstring.h有一堆语法错误(假设我只使用一个基本程序,只有一个gtk_init和gtk_main)。

Visual Studio非常好地处理了gtk2。 为什么拒绝使用gtk3进行编译? 有什么办法让它与它一起工作? 尽管我喜欢Code :: Blocks,外部powershell迫使我保持​​我的代码VS2012兼容……

编辑:我创建了一个存储库,其中包含一个简单的gtk3程序和VS2012和Codeblocks的预配置项目文件。 https://github.com/The-J-Person/Example-gtk3-vs2012-project

编辑2:这是VS2012给出的编译错误列表: http ://pastebin.com/ThZpwVmg

现在GTK邮件列表上有一个答案。

在gutils.h第82行和第122行以及gstring.h第129行中,将“static inline”更改为“static __inline”。 或者,将PreprocessorDefinition添加到项目文件中,将“inline”定义为“__inline”。

https://mail.gnome.org/archives/gtk-list/2014-January/msg00011.html

这让我的项目工作得很好。