windows eclipse gtkmm 开发环境配置(二)
三、在Eclipse中直接设置开发gtkmm的方法
利用pkg-config工具确实方便快捷,但也有个缺陷:Eclipse的智能感知功能发挥不了作用了。如:在本文(一)中,你会发现,编辑器提示不能确定头文件(Unresolved inclusion: <gtkmm.h>)。这对于像我这样的业余编程爱好者可是太不方便了。
在网上看到一篇博客http://blogold.chinaunix.net/u2/80326/showart_1332416.html,照这个思路设置,可让Eclipse的智能感知功能不失效。但觉得比较麻烦,在Eclipse3.6.2中可以用“复制/粘贴”的方法,而不用去改写项目的底层文件。
第一,利用pkg-config工具获得三项内容:包含文件路径、链接库文件、链接库搜索路径。
在命令提示符下运行如下命令:pkg-config gtkmm-2.4 --cflags –libs>gtkmm24.txt。文本文件中就是我们需要的内容。
打开gtkmm24.txt进行修改。
Gtkmm24.Txt内容如下:
-mms-bitfields -IC:/gtkmm/include/gtkmm-2.4 -IC:/gtkmm/lib/gtkmm-2.4/include -IC:/gtkmm/include/atkmm-1.6 -IC:/gtkmm/include/giomm-2.4 -IC:/gtkmm/lib/giomm-2.4/include -IC:/gtkmm/include/pangomm-1.4 -IC:/gtkmm/lib/pangomm-1.4/include -IC:/gtkmm/include/gtk-2.0 -IC:/gtkmm/include/gdkmm-2.4 -IC:/gtkmm/lib/gdkmm-2.4/include -IC:/gtkmm/include/atk-1.0 -IC:/gtkmm/include/glibmm-2.4 -IC:/gtkmm/lib/glibmm-2.4/include -IC:/gtkmm/include/glib-2.0 -IC:/gtkmm/lib/glib-2.0/include -IC:/gtkmm/include/sigc++-2.0 -IC:/gtkmm/lib/sigc++-2.0/include -IC:/gtkmm/include/cairomm-1.0 -IC:/gtkmm/lib/cairomm-1.0/include -IC:/gtkmm/include/pango-1.0 -IC:/gtkmm/include/cairo -IC:/gtkmm/include -IC:/gtkmm/include/freetype2 -IC:/gtkmm/include/libpng14 -IC:/gtkmm/lib/gtk-2.0/include -IC:/gtkmm/include/gdk-pixbuf-2.0 -LC:/gtkmm/lib -Lc:/devel/dist/win32/libpng-1.4.3-1/lib -lgtkmm-2.4 -latkmm-1.6 -lgdkmm-2.4 -lgiomm-2.4 -lpangomm-1.4 -lgtk-win32-2.0 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpng14 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl |
删除-mms-bitfields,把由-I引导的每一项作为一行,就得到了包含文件路径。
1.包含文件路径: C:/gtkmm/include/gtkmm-2.4 C:/gtkmm/lib/gtkmm-2.4/include C:/gtkmm/include/atkmm-1.6 C:/gtkmm/include/giomm-2.4 C:/gtkmm/lib/giomm-2.4/include C:/gtkmm/include/pangomm-1.4 C:/gtkmm/lib/pangomm-1.4/include C:/gtkmm/include/gtk-2.0 C:/gtkmm/include/gdkmm-2.4 C:/gtkmm/lib/gdkmm-2.4/include C:/gtkmm/include/atk-1.0 C:/gtkmm/include/glibmm-2.4 C:/gtkmm/lib/glibmm-2.4/include C:/gtkmm/include/glib-2.0 C:/gtkmm/lib/glib-2.0/include C:/gtkmm/include/sigc++-2.0 C:/gtkmm/lib/sigc++-2.0/include C:/gtkmm/include/cairomm-1.0 C:/gtkmm/lib/cairomm-1.0/include C:/gtkmm/include/pango-1.0 C:/gtkmm/include/cairo C:/gtkmm/include C:/gtkmm/include/freetype2 C:/gtkmm/include/libpng14 C:/gtkmm/lib/gtk-2.0/include C:/gtkmm/include/gdk-pixbuf-2.0
-LC:/gtkmm/lib -Lc:/devel/dist/win32/libpng-1.4.3-1/lib -lgtkmm-2.4 -latkmm-1.6 -lgdkmm-2.4 -lgiomm-2.4 -lpangomm-1.4 -lgtk-win32-2.0 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpng14 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl |
-LC:/gtkmm/lib -Lc:/devel/dist/win32/libpng-1.4.3-1/lib是两个库文件搜索目录,由-l引导的每一项是链接的库文件,每一项一行。如下:
1.包含文件路径: C:/gtkmm/include/gtkmm-2.4 C:/gtkmm/lib/gtkmm-2.4/include C:/gtkmm/include/atkmm-1.6 C:/gtkmm/include/giomm-2.4 C:/gtkmm/lib/giomm-2.4/include C:/gtkmm/include/pangomm-1.4 C:/gtkmm/lib/pangomm-1.4/include C:/gtkmm/include/gtk-2.0 C:/gtkmm/include/gdkmm-2.4 C:/gtkmm/lib/gdkmm-2.4/include C:/gtkmm/include/atk-1.0 C:/gtkmm/include/glibmm-2.4 C:/gtkmm/lib/glibmm-2.4/include C:/gtkmm/include/glib-2.0 C:/gtkmm/lib/glib-2.0/include C:/gtkmm/include/sigc++-2.0 C:/gtkmm/lib/sigc++-2.0/include C:/gtkmm/include/cairomm-1.0 C:/gtkmm/lib/cairomm-1.0/include C:/gtkmm/include/pango-1.0 C:/gtkmm/include/cairo C:/gtkmm/include C:/gtkmm/include/freetype2 C:/gtkmm/include/libpng14 C:/gtkmm/lib/gtk-2.0/include C:/gtkmm/include/gdk-pixbuf-2.0 |
2.链接库文件: gtkmm-2.4 atkmm-1.6 gdkmm-2.4 giomm-2.4 pangomm-1.4 gtk-win32-2.0 glibmm-2.4 cairomm-1.0 sigc-2.0 gdk-win32-2.0 atk-1.0 gio-2.0 pangowin32-1.0 gdi32 pangocairo-1.0 gdk_pixbuf-2.0 png14 pango-1.0 cairo gobject-2.0 gmodule-2.0 gthread-2.0 glib-2.0 intl |
3.链接库搜索路径 C:/gtkmm/lib c:/devel/dist/win32/libpng-1.4.3-1/lib |
C:/gtkmm就是GTKMM_BASEPATH,建议用 ${GTKMM_BASEPATH}替换,我已将C:/gtkmm中的“/”改成了“/”,这样Gnu Make Builder(不能识别“/”)和CDT Internal Builder都能识别。
第二步,将包含文件路径的所有项选中并复制,打开“项目/属性”在“C/C++ Build/Settings”的“Tool Settings”的“GCC C++ Compiler”的“Includes”右侧点击鼠标左键,按Ctrl+V粘贴。注意,在这里点击右键没有菜单弹出,一定要先点击鼠标左键,再Ctrl+V才可以粘贴进去。
粘贴后如下图:
照此办理。将链接库文件、链接库搜索路径粘贴进相应拦中即可。如下图
这样即可正常编译,又可享受Eclipse的智能感知功能。