灌溉梦想,记录脚步

Linux 下搭建C/C++ 开发环境

Linux 下搭建C/C++ 开发环境
Linux 除了默认装了gcc 和文本编辑器外,没有可供利用的IDE ,当然这比windows 已经好多了,至少有个gcc ,学习在linux 下的编程,一般的高手都推荐就用以上这两个工具,在用个make,gdb 什么的就好了。但对于初学者,尤其是在windows 下用惯了VC,VB之类的IDE 的同志们来说,仅仅用命令行的方式,是在是有点打击热情,尤其是gdb ,几乎是把断点,程序之类的要全记在脑子里,出了错也不好改,找就找很长时间。

著名的开发工具有Kdeveloper, Anjuta , Eclipse+CDT,其中kdeveloper是KDE 平台得,在Gnome 平台下使用需要安装一大堆KDE 的东西,不喜欢,放弃了。虽然都传说Kdeveloper的功能是如何强大。而Eclipse+CDT 用起来似乎不错,但是主要有两点不舒服,一是不能代码自动完成,二是编译速度比较慢。

体验KDevelop和Anjuta,这里推荐一下一款和VC比较类似的IDE ,支持C /C ++/java/python ……,比较可以,在ubuntu下安装比较简单,先在系统-> 系统管理->软件源里加个源:

deb http://anjuta.org ./

然后用新立得搜索一下anjuta,把相关的都点上,就行了。

或者:

sudo apt-get update

sudo apt-get install anjuta automake autogen autoconf

Ubuntu配置C/C++ GTK 开发环境(7.10版本)

1.配置GCC

刚安装好的系统已经存在GCC 了, 555真糟糕,这个GCC 就连一个简单的“Hello world ”都编译不了。因为缺少一些必须的头文件,所以需要安装build-essential这个软件包,安装了此软件包会自动安装上g++ , libc6-dev, linux-libc-dev,libstdc++6-4.1-dev等一些必须的软件和头文件库。

安装此软件包有两个方法进行。

(1 )在新立得里面搜索build-essential 标记并apply

(2 )在终端中输入如下命令:sudo apt-get install build-essential

安装完成可以写一个helloworld进行测试一下

代码:

#include

int main()

{

printf("Hello World!\r\n" );

return 1;

}

编译:

$ sudo gcc hello.c -o testhello

$ ./testhello

显示

Hello World !

2.安装GTK 环境

安装GTK 环境只需要安装一个gnome-core-devel就可以了,里面包含了很多其他的包。除此之外还要安装一些其他的东西,如:libglib2.0-doc, libgtk2.0-doc帮助文档, devhelp帮助文档, glade-gnome, glade-common , glade-doc图像界面设计……

1 )在新立得里面搜索libglib2.0-doc, libgtk2.0-doc, devhelp, glade-gnome,glade-common, glade-doc标记并apply.

(2 )在终端中输入如下命令:

sudo apt-get install gnome-core-devel

sudo apt-get install libglib2.0-doc libgtk2.0-doc

sudo apt-get install devhelp

sudo apt-get install glade-gnome glade-common glade-doc

这样GTK 安装完毕

ubuntu下安装Fcitx

安装Fcitx
sudo apt-get install im-switch fcitx sudo im-switch -s fcitx -z default im-switch -s fcitx -z default #注意:不加sudo
完成设置最好重启一下X,输入法就生效了
某些情况下可能,在安装了fcitx输入法以後可能会出现和SCIM并存的问题,解决方法如下:
sudo gedit /usr/lib/gtk-2.0/2.10.0/immodule-files.d/scim-gtk2-immodule.immodules
将内容改为如下:
# automatically generated by dh_gtkmodules, do not edit “/usr/lib/gtk-2.0/2.10.0/immodules/im-scim.so” “scim” “SCIM Input Method” “scim” “/usr/share/locale” “ja:ko” #就是将最後一行中的"ja:ko:zh"修改为"ja:ko",这样修改以後,scim在中文环境下将不被启动

其它设置,请访问英文Locale下使用中文输入法
[编辑] 激活输入法
重新启动Xwindow完成。按 Ctrl + 空格 键激活输入法。
[编辑] 安装fcitx (非deb包)
下载最新稳定版(预编译包IA32)
http://www.fcitx.org/main/?q=node/9
解压到任意目录
安装
sudo ./fcitx.install
反安装
sudo ./fcitx.uninstall
现在装是装上了,但是还有一些小问题要修改才能在im-switch 上正常使用
1.任意位置新建立一个文件叫 fcitx,内容如下:
XIM=fcitx XIM_PROGRAM=/usr/bin/fcitx XIM_ARGS="" GTK_IM_MODULE=XIM QT_IM_MODULE=XIM DEPENDS="fcitx"
复制到 /etc/X11/xinit/xinput.d/ 下以保证im-switch 能找到它。然後执行:
update-alternatives –install /etc/X11/xinit/xinput.d/all_ALL xinput-all_ALL /etc/X11/xinit/xinput.d/fcitx 30
2.执行
sudo im-switch -s fcitx im-switch -s fcitx
将二个帐号的输入法都换成 fcitx
[编辑] Fcitx使用细节
启用fcitx新配置
fcitx修改配置文件後无须重启X或是kill後再加载,在输入法处于激活状态下,只需按Ctrl+5即可加载新的配置文件
全角符号
当前最新符本下,如果将fcitx符号改为全角,是不可以输入中文的(如果自己更改过相应设置另当别论)
锁定输入法
fcitx输入法的面板上有把小锁的图表,点击它使之变成红色时,将无法通过ctrl+shift切换到其他输入法,点击它使之变灰色时则可进行输入法之间的切换,对于单一输入法用户来说可避免误按ctrl+shift的麻烦了.
去除fcitx多馀码表
fcitx默认是有较多的输入法的,通过上面的~/.fcitx/config修改可以去掉双拼、区位,但如果你只用五笔而又偶尔需要切换到拼音下去打个别生字的时候,可能会讨厌按数次的ctrl+shift,执行下面的命令:
kdesu kate /usr/share/fcitx/data/tables.conf #kubuntu gksu gedit /usr/share/fcitx/data/tables.conf #ubuntu gksu mousepad /usr/share/fcitx/data/tables.conf #xubuntu
里面的内容大致是这样的
#以#打头的为注释 [码表] 名称=五笔字型 码表=wbx.mb 拼音=1 拼音键=z ……… ……… #[码表] #名称=二笔 #码表=eb.mb ……… ……… #[码表] #名称=仓颉 #码表=cj.mb ……… ………
在你不需要的东西加上#或者你如果确定今後都不会用到这些输入法直接删除也可以,保存退出。激活fcitx输入状态,再按ctrl+shift,就会发现多馀的码表都没有了.

ubuntu增加空间

选到Ubuntu的属性页,点菜单中的虚拟机,设置
选择增加,根据向导增加一块硬盘
启动Ubuntu,打开终端,输入:sudo mkfs.ext3 /dev/sdb
然后再根目录新建一个目录 mkdir harddisk2
挂载硬盘 sudo mount -t ext3 /dev/sdb /harddisk2
成功后双击harddisk2进入目录就会发觉剩余空间是挂载上去的第2块硬盘的空间了
网上说编辑/etc/fstab这样每次开机自动加载
我照前面的样子加了这一行,刚退出保存后顶上的菜单什么都没有了
/dev/sdb /sdb ext3 defaults,errors=remount-ro 0 0
不过强制重新启动后就正常了。。心脏不好的就不要试这个了。。

在linux下安装LumaQQ

1,安装java环境
1)更新sources.list

sudo cp /etc/apt/sources.list /etc/apt/sources.list_backu
sudo gedit /etc/apt/sources.list

出现一个word样的文本编辑器gedit,如果选择了中文为界面,gedit菜单都是中文。
把sources.list里面完全清空,把下面四行粘贴进去:

deb http://archive.ubuntu.com/ubuntu/ dapper main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ dapper-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ dapper-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ dapper-backports main restricted universe multiverse

保持文件,退出gedit。
然后运行两个命令:

sudo apt-get update
sudo apt-get dist-upgrade

2)安装java

sudo apt-get install sun-java5-jdk

然后需要配置一下JAVA_HOME环境变量

export JAVA_HOME=/usr b/jvm/java-1.5.0-sun-1.5.0.06

2,install LumaQQ
wget -c http://lumaqq.linuxsir.org/download/2006/lumaqq_2006M2-linux_gtk2_x86_no_jre.tar.gz
sudo tar zxvf lumaqq_2006M2-linux_gtk2_x86_no_jre.tar.gz -C /opt/
sudo chown -R root:root /opt/LumaQQ/
sudo chmod -R 755 /opt/LumaQQ/
sudo gedit /usr/share/applications/LumaQQ.desktop

2.在新增的文件内加入下面这几行

[Desktop Entry]
Name=LumaQQ
Comment=QQ Client
Exec=/opt/LumaQQ/lumaqq
Icon=/opt/LumaQQ/QQ.png
Terminal=false
Type=Application
Categories=Application;Network;

3.保存编辑过的文件 安装完成后的快捷方式在(应用程序 -> internet -> LumaQQ)。

ubuntu7.10中ip地址的配置方法

ubuntu7.10中ip地址的配置方法
1、打开终端,执行命令:sudo gedit /etc/network/interfaces
2、将前两行用“#”注释掉,当然你也可以删除,不过最好不要删,然后在下面添加下面这几 行代码:iface eth0 inet static

address ***.***.***.***(此处为你的IP地址)

netmask 255.255.255.0

gateway ***.***.***.***(此处为你的网关)

添加完后,保存。(非常抱歉,第二步有点问题。前两行别管它,别注释掉,要不然会引起非常严重的问题:mysql数据库启动不起来,重新装也会出现依赖关系的问题而不能安装。)

3、在终端中执行: sudo gedit /etc/resolv.conf

将里面的nameserver改为你的DNS,如果有两个DNS,就再添加一个。

常用RAID详解

RAID 0

RAID 0又称为Stripe或Striping,它代表了所有RAID级别中最高的存储性能。RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。
  如图1所示:系统向三个磁盘组成的逻辑硬盘(RADI 0 磁盘组)发出的I/O数据请求被转化为3项操作,其中的每一项操作都对应于一块物理硬盘。我们从图中可以清楚的看到通过建立RAID 0,原先顺序的数据请求被分散到所有的三块硬盘中同时执行。

  从理论上讲,三块硬盘的并行操作使同一时间内磁盘读写速度提升了3倍。 但由于总线带宽等多种因素的影响,实际的提升速率肯定会低于理论值,但是,大量数据并行传输与串行传输比较,提速效果显著显然毋庸置疑。

  RAID 0的缺点是不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法得到恢复。

  RAID 0具有的特点,使其特别适用于对性能要求较高,而对数据安全不太在乎的领域,如图形工作站等。对于个人用户,RAID 0也是提高硬盘存储性能的绝佳选择。

RAID 1

RAID 1又称为Mirror或Mirroring,它的宗旨是最大限度的保证用户 数据 的可用性和可修复性。 RAID 1的操作方式是把用户写入硬盘的数据百分之百地自动复制到另外一个硬盘上。

  当读取数据时,系统先从RAID 0的源盘读取数据,如果读取数据成功,则系统不去管备份盘上的数据;如果读取源盘数据失败,则系统自动转而读取备份盘上的数据,不会 造成 用户工作任务的中断。当然,我们应当及时地更换损坏的硬盘并利用备份数据重新建立Mirror,避免备份盘在发生损坏时,造成不可挽回的数据损失。

  由于对存储的数据进行百分之百的备份,在所有RAID级别中,RAID 1提供最高的数据安全 保障 。同样,由于数据的百分之百备份,备份数据占了总存储空间的一半,因而,Mirror的磁盘空间利用率低,存储成本高。

  Mirror虽不能提高存储性能,但由于其具有的高数据安全性,使其尤其适用于存放重要数据,如服务器和数据库存储等领域。

RAID 5 是一种存储性能、数据安全 和存储成本兼顾的存储解决 方案 。 以四个硬盘组成的RAID 5为例,其数据存储方式如下图所示:

  图中,P0为D0,D1和D2的奇偶校验信息,其它以此类推。

  由图中可以看出,RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。

RAID 5

  RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全 保障 ,但保障程度要比Mirror低而磁盘空间利用率要比Mirror高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘 空间 利用率要比RAID 1高,存储成本相对较低

RAID 0+1

RAID 0+1:正如其名字一样RAID 0+1是RAID 0和RAID 1的组合形式,也称为RAID 10。

  以四个磁盘组成的RAID 0+1为例,其 数据存储方式如图所示:RAID 0+1是存储性能和数据安全兼顾的方案。它在提供与RAID 1一样的数据安全保障的同时,也提供了与RAID 0近似的存储性能。

  由于RAID 0+1也通过数据的100%备份提供数据安全 保障 ,因此RAID 0+1的磁盘空间利用率与RAID 1相同,存储成本高。

  RAID 0+1的特点使其特别适用于既有大量数据需要存取,同时又对数据 安全性 要求严格的领域,如银行、金融、商业超市、仓储库房、各种档案管理等。