1 安装Eclipse IDE for C/C++ Developers以及glib
2 新建一个C project
3 右击工程,属性->C/C++ General -> Path and Symbols,在includes中添加/usr/include/glib-2.0和/usr/include/glib-2.0/include(glib安装的位置可能不同);
4 C/C++ Build->Setting->Gcc c Compiler->Miscellaneous中添加$$(pkg-config --cflags glib-2.0)
5 C/C++ Build->Setting->Gcc c Linker->Miscellaneous中添加$$(pkg-config --libs glib-2.0)
上述4、5步骤也可以用$$(pkg-config --libs --cflags glib-2.0) 或 `pkg-config --libs --cflags glib-2.0`
在bash编程中,用反引号引起的内容实际效果是将反引号中的命令执行,并将输出结果作为脚本中的内容解释执行。
如果在程序中使用了g_thread_init(),还要加上--libs gthread-2.0
这里的pkg-config是什么呢?
pkg-config 是一个提供从源代码中编译软件时查询已安装的库时使用的统一接口的计算机软件。pkg-config原本是设计用于Linux的,但现在在各个版本的BSD、windows、Mac OS X和Solaris上都有着可用的版本。
它输出已安装的库的各个信息,包括:
C或C++编译器需要的参数
链接器需要的参数
已安装软件包的版本信息
当安装一个库时(从RPM,deb, ...),会包括一个后缀名为pc的文件,它会同其他.pc文件一起放入一个文件夹(依赖与你的系统设置)。
在这个文件里包含有数个条目。这些条目通常包含用于其他使用这个库的程序编译时需要的库设置,以及头文件的位置,版本信息和一个简介。
缺省情况下,pkg-config首先在$prefix$/lib/pkgconfig/中查找相关包对应的相应的*.pc文件。在linux上上述路径名为 /usr/lib/pkgconfig/。在Windows下,则是$MinGW$/lib/pkgconfig。若是没有找到,它也会到PKG_CONFIG_PATH这个环境变量所指定的路径下去找。若是还没有找到,它就会报错。
这是一个glib-2.0.pc的样例:prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
glib_genmarshal=glib-genmarshal
gobject_query=gobject-query
glib_mkenums=glib-mkenums
Name: GLib
Description: C Utility Library
Version: 2.12.13
Libs: -L${libdir} -lglib-2.0
Cflags: -I${includedir}/glib-2.0 -I${libdir}/glib-2.0/include
这个文件告诉我们这些库可以在/usr/lib找到,头文件可以在/usr/include里找到,库的名字是libglib-2.0,并且版本号是2.12.13。它也提供了用于编译依赖于libglib-2.0的源代码时需要的链接器参数。设置环境变量PKG_CONFIG_PATH方法举例如下:
export PKG_CONFIG_PATH=/home/zlib:$PKG_CONFIG_PATH
这是一个编译时使用pkg-config的样例:
gcc -o test test.c $(pkg-config --libs --cflags glib-2.0)
在windows上,pkg-config不能直接用,不知什么原因,可以在命令行执行上述命令,将Miscellaneous的Other
flags中加入在命令行的输出参数,而且一定要选中MinGW
C Linker,在右边的Command
line pattern里面的${INPUTS}
调到${COMMAND}后面