ubuntu13.04下eclipse的安装、CDT配置及GTK+工程的配置

    其实个人觉得eclipse还是很不错的。之前在windows下就装了一个eclipse。

    现在的话,习惯在ubuntu下写C和C++程序,包括GTK+。之前都是用gedit + gcc,偶尔用vi吧。其实之所以想去捣鼓eclipse还是因为想要有代码补全和代码提示功能。vim的话配置一下也可以实现。有兴趣的童鞋可以参考以下链接,去配置一下vim,以实现代码补全。
http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646455.html

    但是,不得不承认本人vi或者vim的使用水平只是半桶水。我也不是那种非要用vi/vim的人,所以抱歉,我还是去找个IDE。

    eclipse的安装、CDT的配置和GTK+工程的配置,之前我也去网上查找个相关的教程,但是比较零碎,有所缺漏,可能是因为版本更新了吧。我自己参照着捣鼓了一下,现在把整个流程说下:


    eclipse的安装和CDT的配置:

    1、到eclipse官网下载eclipse for linux标准版、还有从www.eclipse.org/cdt/下载CDT。到JDK官网下载jdk,注意版本匹配的问题。

    2、将三个压缩包放至主目录,解压CDT和JDK,理论上解压到哪里都行,但是建议把JDK解压到主目录,得到jdk1.7.0_45/文件夹。因为运行eclipse的时候是需要jdk1.7.0_45/文件夹里的JRE文件夹的,如果你放在其他目录,需要root权限才能获取到,eclipse工程运行的时候会出错。当然也可以将之置于其他文件夹,然后用chmod命令更改权限,理论上可行,无实测。我是将CDT和JDK的压缩包都解压到主目录,得到CDT/和jdk1.7.0_45/两个文件夹

    3、解压eclipse压缩包至/opt(理论上解压到哪里都可以),得到/opt/eclipse/文件夹

    4、将~/CDT/plugins/下的所有东西都复制到/opt/eclipse/plugins/里面,将~/CDT/features/下的所有东西都复制到/opt/eclipse/features/。命令如下:

    sudo cp -r ~/CDT/plugins/ /opt/eclipse/

    sudo cp -r ~/CDT/features/ /opt/eclipse/

    注意:上述两条命令最后的路径后面不带plugins/或features/。如果你带了,ubuntu会把~/CDT/plugins/文件夹整个复制到/opt/eclipse/plugins/下,也就是说/opt/eclipse/plugins/下还有一个文件夹叫plugins,这显然不是我们想要的。不要自己复制错了然后又回来骂我。

    5、接下来把~/jdk1.7.0_45/文件夹下的jre/复制到eclipse的安装目录下。其实更简单的方法是在eclipse/文件夹下建立一个软链接指向~/jdk1.7.0_45/jre/,命令如下:

    sudo ln -s ~/jdk1.7.0_45/jre/ /opt/eclipse/jre

    6、好了,到此为止,eclipse安装和CDT的配置完毕,可以进行java编程 或者C/C++的编程了,测试程序就略过了,Javaer(这个表达是可行的)和Cer(话说这个表达对吗)可自行测试。

    在终端输入/opt/eclipse/eclipse即可启动。为了方便,可以在~/.bashrc文件中创建一个环境变量,如下:

    gedit ~/.bashrc

    在文件末尾输入

    eclipse="/opt/eclipse/eclipse"

    保存关闭,终端里输入:source ~/.bashrc

    以后就可以在终端里直接输入$eclipse以启动eclipse

    7.最后补充一点:上述操作中,我没有将jdk的路径写到环境变量中。其实可以不用写到环境变量中,只要在eclipse中创建java工程时,选择JRE的时候,选第三项即可,eclipse会识别到的。如下图:

ubuntu13.04下eclipse的安装、CDT配置及GTK+工程的配置_第1张图片

当然,如果你非要写到环境变量里也行。终端里:sudo vim /etc/profile或者sudo gedit /etc/profile

在文件末尾添加新行:export PATH=$PATH:/home/user_name/jdk1.7.0_45/bin

保存关闭后,终端里:source /etc/profile

然后,在上述创建JAVA工程时,JRE的选项中选择第一项。


    eclipse中GTK+工程的配置:

    在eclipse中编写GTK+程序后,编译的时候会出错。可做如下设置:

1.    右击工程,选择prosperity,在弹出的菜单中,选择C/C++ Build-->setting

2.在GCC C Compiler --> Miscellaneous中的Other flags文本框后面添加
`pkg-config --cflags --libs gtk+-3.0`(如果想用3.x的库的话)
或`pkg-config --cflags --libs gtk+-2.0`(如果想用2.x的库的话)

ubuntu13.04下eclipse的安装、CDT配置及GTK+工程的配置_第2张图片

3.在GCC C Compiler --> Includes里添加头文件路径。如下:
/usr/include/gtk-3.0
/usr/include/gtk-2.0
/usr/include/glib-2.0

ubuntu13.04下eclipse的安装、CDT配置及GTK+工程的配置_第3张图片

4.在GCC C Linker --> Miscellaneous的Linker flags中,加上`pkg-config --cflags --libs gtk+-3.0`

ubuntu13.04下eclipse的安装、CDT配置及GTK+工程的配置_第4张图片


5.在GCC C Linker中,command line pattern默认的内容为:

${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}
其中的FLAGS变量即第4步所设置的Linker flags,即`pkg-config --cflags --libs gtk+-3.0`,该命令不能处于输出文件之前。如果处于输出文件之前,编译器实际上是无法找到gtk+的库文件的。因此要将之放到最后,即把GCC C Linker中command line pattern的内容调整为:

${COMMAND} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} ${FLAGS} 

ubuntu13.04下eclipse的安装、CDT配置及GTK+工程的配置_第5张图片




工程测试:在eclipse中建立一个C project,代码如下:

/*
 * Helloworld.c
 *
 *  Created on: 2013年11月22日
 *      Author: thomas
 */

#include <gtk/gtk.h>
typedef GtkWidget *PGtkWidget;
int main(int argc, char **argv)
{
    PGtkWidget window, label;
    gtk_init(&argc, &argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_default_size(GTK_WINDOW(window), 300, 300);
    gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
    label = gtk_label_new("hello world!");
    gtk_container_add(GTK_CONTAINER(window), label);
    g_signal_connect(window, "delete_event", gtk_main_quit, NULL);
    gtk_widget_show_all(window);
    gtk_main();
    return 0;
}


Build命令之后,Run as --> Local C/C++ Application,结果如下:

ubuntu13.04下eclipse的安装、CDT配置及GTK+工程的配置_第6张图片


关于GTK+的配置,我是参考了以下的链接,在原作者的基础上进行了一些修正和补充。

参考链接:http://www.coder4.com/archives/989

至于CDT的配置,较零碎,也忘了参考的是哪几个链接了,见谅。


另附上版本信息:

ubuntu13.04

eclipse standard/SDK     version:Kepler service release 1

gcc version:4.73

g++ version:4.73

JDK version:v7.0 u45

你可能感兴趣的:(eclipse,CDT,gtk+)