msi*_*nfo 2 c c++ windows gtk gcc
系统:Windows7,32位,GTK 2.24.10,mingw
我正在尝试编写基本的helloworld.c类型的基于GTK的应用程序.但是,它没有运行.
这些是我遵循的步骤.
D:\ gtk> gcc -o project helloworld.c%GTK%
gcc:%GTK%:没有这样的文件或目录helloworld.c:1:21:错误:gtk/gtk.h:没有这样的文件或目录helloworld.c :在函数'main'中:helloworld.c:5:错误:'GtkWidget'未声明(首次在此函数中使用)helloworld.c:5:错误:(每个未声明的标识符只报告一次helloworld.c:5:错误:对于它出现的每个函数.)helloworld.c:5:错误:'window'未声明(在此函数中首次使用)helloworld.c:9:错误:'GTK_WINDOW_TOPLEVEL'未声明(首次在此函数中使用)
D:\gtk>gcc -Wall -g helloworld.c -o helloworld pkg-config --cflags gtk+-2.0 pkg-config --libs gtk+-2.0
gcc: pkg-config: No such file or directory
gcc: gtk+-2.0: No such file or directory
gcc: pkg-config: No such file or directory
gcc: gtk+-2.0: No such file or directory
cc1.exe: error: unrecognized command line option "-fcflags"
cc1.exe: error: unrecognized command line option "-flibs"
Run Code Online (Sandbox Code Playgroud)
D:\ gtk中的批处理文件
set GTK=-mms-bitfields -IC:/gtk/include/gtk-2.0 -IC:/gtk/lib/gtk-2.0/include -IC:/gtk/include/atk-1.0 -IC:/gtk/include/cairo -IC:/gtk/include/gdk-pixbuf-2.0 -IC:/gtk/include/pango-1.0 -IC:/gtk/include/glib-2.0 -IC:/gtk/lib/glib-2.0/include -IC:/gtk/include -IC:/gtk/include/freetype2 -IC:/gtk/include/libpng14 -LC:/gtk/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl
start cmd
Run Code Online (Sandbox Code Playgroud)
helloworld.c
#include <gtk/gtk.h>
int main( int argc,
char *argv[] )
{
GtkWidget *window;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_show (window);
gtk_main ();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
您可以尝试以下手动步骤:
1)在命令提示符下运行pkg-config命令以获取包含标志:
c:\dev\gtk224\bin\pkg-config.exe --cflags gtk+-2.0
这是我的输出:
-mms-bitfields -Ic:/dev/gtk224/include/gtk-2.0 -Ic:/dev/gtk224/lib/gtk-2.0/include -Ic:/dev/gtk224/include/atk-1.0 -Ic:/dev/gtk224/include/cairo -Ic:/dev/gtk224/include/gdk-pixbuf-2.0 -Ic:/dev/gtk224/include/pango-1.0 -Ic:/dev/gtk224/include/glib-2.0 -Ic:/dev/gtk224/lib/glib-2.0/include -Ic:/dev/gtk224/include -Ic:/dev/gtk224/include/freetype2 -Ic:/dev/gtk224/include/libpng14
Run Code Online (Sandbox Code Playgroud)
2)将(1)的输出设置为变量GTK_INCLUDES:
C:\dev\1_repo\gtk_scratch>set GTK_INCLUDES=-mms-bitfields -Ic:/dev/gtk224/include/gtk-2.0 -Ic:/dev/gtk224/lib/gtk-2.0/include -Ic:/dev/gtk224/include/atk-1.0 -Ic:/dev/gtk224/include/cairo -Ic:/dev/gtk224/include/gdk-pixbuf-2.0 -Ic:/dev/gtk224/include/pango-1.0 -Ic:/dev/gtk224/include/glib-2.0 -Ic:/dev/gtk224/lib/glib-2.0/include -Ic:/dev/gtk224/include -Ic:/dev/gtk224/include/freetype2 -Ic:/dev/gtk224/include/libpng14
Run Code Online (Sandbox Code Playgroud)
(确保使用步骤(1)中的输出)
3)对库标志执行与步骤1相同的操作:
c:\dev\gtk224\bin\pkg-config.exe --libs gtk+-2.0
这是我的输出:
-Lc:/dev/gtk224/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl
Run Code Online (Sandbox Code Playgroud)
4)将(3)的输出设置为变量GTK_LIBS
C:\dev\1_repo\gtk_scratch>set GTK_LIBS=-Lc:/dev/gtk224/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl
Run Code Online (Sandbox Code Playgroud)
(确保使用步骤(3)中的输出)
5)确保你的路径上有gtk +和MinGW:
set PATH=c:\dev\MinGW\bin\;c:\dev\gtk224\bin
Run Code Online (Sandbox Code Playgroud)
(确保你设置你的mingw和gtk目录的路径)
6)编译:
c:\dev\MinGW\bin\gcc.exe -g helloworld.c -o helloworld %GTK_INCLUDES% %GTK_LIBS%
Run Code Online (Sandbox Code Playgroud)
7)当你能够编译OK时,将你在步骤2,4,5和6中所做的事情复制到批处理文件中,这样就可以通过运行批处理文件来编译app.
归档时间: |
|
查看次数: |
10047 次 |
最近记录: |