ubuntu8.04 编程环境配置手记

本文的大部分内容转载自wiki,还有部分内容从baidu,google中整理得到。

在ubuntu8.04系统成功安装后,其实已经自带了很多工具。
编辑工具:
1、gedit
2、vi-vim
3、nano(pico)
终端:
1、xterm
2、gnome-terminal
开发环境:
1、gcc

1、安裝C/C++的Man手冊
sudo apt-get install manpages-dev
这个可以在man下查看函数原型,也可以在vim下使用K,在写代码时跳转到函数原型。

2、配置基础开发环境GCC

其实刚装好的系统中已经有GCC了,但是这个GCC几乎什么文件都不能编译,因为缺少一些必须的头文件,所以要安装build-essential这个软件包。
在终端输入: sudo apt-get install build-essential

安装完成后写一个C语言程序testc.c测试一下
程序示例:
#include<stdio.h>
int main()
{
    printf("Hello Ubuntu!\n");
    return 0;
}

保存文件名为:testc.c
编译运行:
$ gcc -Wall testc.c -o testc
$ ./testc
$ Hello Ubuntu!

3、安装gdb 调试器
sudo apt-get install gdb

4、安装安装图形界面ddd 调试器
sudo apt-get install ddd

5、安装automake工具
sudo apt-get install automake
sudo apt-get install autoconf
sudo apt-get install autogen

autoconf是一个用于生成可以自动地配置软件源代码包以适应多种UNIX类系统的shell脚本的工具。
automake是一个从文件Makefile.am自动生成Makefile.in的工具。

6、安装indent/安装ctags
sudo apt-get install indent      调整C原始代码文件的格式。

sudo apt-get install libtool
GNU libtool 是一个通用库支持脚本,将使用动态库的复杂性隐藏在统一、可移植的接口中。

sudo apt-get install exuberant-ctags 结合vim用于阅读代码,是ctags的新版本

7、安装GTK/GNOME开发环境
安装GTK环境只要安装一个libgtk2.0-dev就可以了,而安装gnome开发环境的话,需要装gnome-core-devel,它包含GTK开发包。但在一般情况下,我们需要有一个ide开发环境,需要帮助文件,于是我们安装
sudo apt-get install gnome-devel gnome-dev-doc

程序示例:
安装完成后我们也同样做个测试程序
#include<gtk/gtk.h>
void hello(GtkWidget *widget,gpointer data)
{
    g_print("Hello Ubuntu!\n");
}
gint delete_event(GtkWidget *widget,GdkEvent *event,gpointer data)
{
    g_print ("delete event occurred\n");
    return(TRUE);
}
void destroy(GtkWidget *widget,gpointer data)
{
    gtk_main_quit();
}
int main( int argc, char *argv[] )
{
    GtkWidget *window;
    GtkWidget *button;
    gtk_init (&argc, &argv);
    window=gtk_window_new (GTK_WINDOW_TOPLEVEL);
    gtk_signal_connect (GTK_OBJECT(window),"delete_event",GTK_SIGNAL_FUNC(delete_event),NULL);
    gtk_signal_connect (GTK_OBJECT (window), "destroy",GTK_SIGNAL_FUNC (destroy), NULL);
    gtk_container_set_border_width (GTK_CONTAINER (window), 10);
    button = gtk_button_new_with_label ("Hello Ubuntu!");
    gtk_signal_connect (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (hello), NULL);
    gtk_signal_connect_object (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (gtk_widget_destroy),GTK_OBJECT (window));
    gtk_container_add (GTK_CONTAINER (window), button);
    gtk_widget_show (button);
    gtk_widget_show (window);   /*显示一个窗口*/
    gtk_main();   /*进入主循环*/
    return(0);
}

保存文件名为:gtkhello.c
用下面命令编译运行:
$ gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`
$ ./gtktest
会显示一个带有一个按钮的窗口,点击按钮以后窗口关闭,命令行显示Hello Ubuntu!

注意: 这样安装以后是没有帮助文档的,使用外部命令查看安装情况:
$pkg-config --modversion gtk+ (查看1.2.x版本)
$pkg-config --modversion gtk+-2.0 (查看 2.x 版本)
$pkg-config --version (查看pkg-config的版本)
$pkg-config --list-all grep gtk (查看是否安装了gtk)
安装gtk2.0: sudo apt-get install libgtk2.0-dev (这个用不上,因为在装那个gnome-devel时,已经装上)
所以我们接着:
sudo apt-get install libglib2.0-doc libgtk2.0-doc

#这将安装 gtk/glib 的API参考手册及其它帮助文档

其实gnome-core-devel整合了很多的包,当然有些我们需要的可能还要另外装上:
sudo apt-get install build-essential #这将安装gcc/g++/gdb/make 等基本编程工具。
sudo apt-get install gnome-core-devel #这将安装 libgtk2.0-dev libglib2.0-dev 等开发相关的库文件。
sudo apt-get install pkg-config #用于在编译GTK程序时自动找出头文件及库文件位置。
sudo apt-get install devhelp #这将安装 devhelp GTK文档查看程序。
sudo apt-get install libglib2.0-doc libgtk2.0-doc #这将安装 gtk/glib 的API参考手册及其它帮助文档。
sudo apt-get instal glade libglade2-dev #这将安装基于GTK的界面构造程序



8、安装QT4/KDE4开发环境
配置qt4开发环境:
apt-get install libqt4-dev qt4-designer qt4-doc

配置kde4开发环境:
sudo apt-get install kde4-devel

呵呵,现在软件可丰富了,而且开机的时候也多了个选项,那就是kde4 。GNOME和KDE这2个桌面的软件是通的,因此一般的软件都可以在2个桌面下使用了。

程序示例:
下面是简单的qt4的测试程序。
首先编写源代码。 新建文件夹qt4hello,然后再里面新建文件 main.cpp,程序内容如下:
#include <QApplication>
#include <QPushButton>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QPushButton hello("Hello Ubuntu!");
    hello.resize(100, 30);

    hello.show();
    return app.exec();
}
用cd命令切换到该文件夹下,然后用下面命令编译运行
$ qmake -project
$ qmake
$ make
$ ./qt4hello
即可看到带一个按钮的程序界面。

9、安装Qdevelop
在新立德软件包中有,只要打开添加/删除 ,勾上Qdevelop 选项即可。安装成功后,打开运行会发现还有几个外部环境没有配置成功。但是此时应该可以用来运行QT的程序。可以新建工程,把以上的qt4的测试程序,运行测试即可。
libqt4-debug
libqt4-gui
libqt4-qt3support
libqt4-sql
qt4-designer
qt4-dev-tools
qt4-doc
qt4-qtconfig     #qt环境设置

exuberant-ctags #代码补全

在安装完qt4时以上部分已被安装。大家只要使用命令行apt,安装缺失的部分即可。然后再次打开Qdevelop,环境应该都配置成功了。

示例测试:"Hallo World"
通过菜单Project->new project创建一个新工程






代码加执行

#include <QApplication>
#include <QPushButton>
int main( int argc, char *argv[] )
{
QApplication app( argc, argv );
QPushButton hello( "Hallo Welt!" );
hello.resize( 100, 30 );
hello.show();
return app.exec();
}



10、安装gvim
ubuntu自带有的是vi-vim,虽然并不是完整版本,但也没必要安装完整版的. 然而,如果你更喜欢GUI界面下的vim的话,即gvim
sudo apt-get install vim-gtk
配置环境:
     1、~/.vimrc vim启动时读取的配置文件
     2、~/.gvimrc gvim启动时读取的配置文件。最好在此文件中仅保存gui相关设置,因为其设置将复盖您的.vimrc文件中的相关设置。
     3、~/.vim/ 用户添加公用插件,语法高亮插件和排版插件的文件夹。
以下是简单的vimrc配置(只要通过 " 即可打开/关闭相关设置)
其中可用的vim配色方案scheme 在 /usr/share/vim/vim71/colors/中。
附录:
"一般设置.
"set nocompatible "VIM而不是VI
"set history=50 "历史记录50条
"set fenc=utf-8 "设置默认语言为8位unicode
"man Q gq "屏蔽Q, 以免进入Ex模式
"filetype on "打开文件类型检测
"
""颜色设置.
colorscheme evening "主题
syntax on "语法高亮

"界面设置.
"set ruler "显示当前位置
"set number "显示行号
""set nonumber "不显示行号

"格式设置.
"set autoindent "自动缩进
"set smartindent "智能缩进
"set cindent "C缩进
"set tabstop=4 "硬TAB
"set softtabstop=4 "软TAB
"set shiftwidth=4 "缩进空格数
"set expandtab "空格替换TAB
"set smarttab "智能TAB
"
"set showmatch "显示匹配
"set matchtime=5 "1/10秒延迟
"set hlsearch "高亮搜索
"set incsearch "搜索中匹配

10、安装DirectFB ([转]http://blog.chinaunix.net/u2/70445/showart.php?id=1161435)
文章有部分修改,如不明了,请参考原文。

1、下载下面两个包并解压:
tar -xzf DirectFB-1.0.0.tar.gz
tar -xzf DirectFB-examples-1.0.0.tar.gz

2、安装DirectFB-1.0.0
cd /home/DirectFB-1.0.0
./configure
make
make install

3、安装DirectFB-examples-1.0.0
a、开启frambuffer,在ubuntu8.04下只要在/boot/grub/menu.lst中的kernel后面加上vga=0x0317(分辨率1024*768)即可。
不过最好在开启前,使用hwinfo --framebuffer先看一下显卡支持的vga数值。
使用命令: sudo hwinfo --framebuffer
可以查看到以下内容:
Mode 0x0305: 1024x768 (+1024), 8 bits
Mode 0x030e: 320x200 (+640), 16 bits
Mode 0x030f: 320x200 (+1280), 24 bits
Mode 0x0311: 640x480 (+1280), 16 bits
Mode 0x0312: 640x480 (+2560), 24 bits
Mode 0x0314: 800x600 (+1600), 16 bits
Mode 0x0315: 800x600 (+3200), 24 bits
Mode 0x0317: 1024x768 (+2048), 16 bits
Mode 0x0318: 1024x768 (+4096), 24 bits
这里显示的是就是显卡可以支持的分辨率(vga的值),vga的值必须是显卡列出的,不然会出错。

b、修改/boot/grub/menu.lst
sudo gedit /boot/grub/menu.lst

## ## End Default Options ##

title        Ubuntu 8.04.1, kernel 2.6.24-21-generic
root        (hd0,7)
kernel        /boot/vmlinuz-2.6.24-21-generic root=UUID=c944b6a1-a6c8-4390-ba86-fd96469f1ba4 ro quiet splash locale=zh_CN vga=0x0318 /*这里加上vga的值*/
initrd        /boot/initrd.img-2.6.24-21-generic
quiet

title        Ubuntu 8.04.1, kernel 2.6.24-21-generic (recovery mode)
root        (hd0,7)
kernel        /boot/vmlinuz-2.6.24-21-generic root=UUID=c944b6a1-a6c8-4390-ba86-fd96469f1ba4 ro single vga=0x0318 /*这里加上vga的值*/
initrd        /boot/initrd.img-2.6.24-21-generic

c、sudo update-initramfs -u  #更新数据

d、locate directfb.pc
找到directfb.pc的路径,例如我的是这样的:

/usr/lib/pkgconfig/directfb.pc
/usr/lib/pkgconfig/cairo-directfb.pc
/usr/local/lib/pkgconfig/directfb.pc
/data/soft/DirectFB-1.1.0/directfb.pc.in
/data/soft/DirectFB-1.1.0/directfb.pc

e、接着设置环境,将第3步得到的pkgconfig库目录加入环境之中:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
这样只能在当前终端可以运行,关机后还得自已运行些命令,才能运行dfb程序
永久性加入可这样:sudo gedit /etc/bash.bashrc 在文件的最后一行中加入:
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig

f、安装DirectFB-examples-1.0.0
   ./configure
    make
    make install

g、将指定directfb的库目录:
vi /etc/ld.so.conf在最后一行加入:/usr/local/lib,保存退出。
ldconfig

h、重启计算机 。 如果不重启,我的机子出现下面的错误:
(*) DirectFB/Core: Single Application Core. (2007-10-22 15:48)
(!) Direct/Util: opening '/dev/fb0' failed
--> No such device
(!) DirectFB/FBDev: Error opening framebuffer device!
(!) DirectFB/FBDev: Use 'fbdev' option or set FRAMEBUFFER environment variable.
(!) DirectFB/Core: Could not initialize 'system_core' core!
--> Initialization error!
df_andi.c <462>:
       (#) DirectFBError [DirectFBCreate( &dfb )]: Initialization error!

4、在root下测试例子
   cd DirectFB-examples-1.0.0/src/ 下,运行:./df_andi
安装完成!

你可能感兴趣的:(编程,ubuntu,gcc,vim,qt)