Friday, January 23, 2009

MY FEDORA 10

Work as root : su + exit

Emacs Installation: yum install emacs

Deal with rar formate: yum install unrar

C, C++ 开发工具

编辑器:EMACS

-写编程,写wiki,收发邮件等等。

-主要两种方式进行扩 展:el脚本(elisp是lisp的一种方言)和第三方扩展包。

-入门成本很高,纯键盘操作,需要记忆大量的快捷键

-功能强大是通 过用户添加一些扩展包,lisp脚本来实现的。

-配置和修改需要耐心和技巧


编译器:首选GCC(GNU COMPILER COLLECTION)

-是GNU开源的

-对标准C++支持度高达96.15% (VC++6.0只83.43%)

-还可编译java等其它语言

-gcc 是 gnu c编译器
g++是 gnu c++编译器
EGCS(Enhanced GNU Compiler Suite)可认为是gcc的改进版

-源程序->汇编程序->编译成obj程序->链接成可执行程序

-选项-E(只进行预处理), -S(生成汇编代码), -g(生成带原代码调试符号的可执行文件,供gdb调试)

-GCC集成了调试器gdb,性能分析工具gcov, gprof。

-gcov:查看源代码中每行代码的运行次数(优化运行次数多的代码来优化程序)。使用gcov时,需要打开 GCC的fprofile-arcs和ftest-coverage两个选项。gcov中常用的选项有-b分支统计信息。

-gprof:查看函数之间的调用顺序,及各个函数运行的时间(将gprof理解为linux/unix自带工具time的加强版)。使用gprof时,需要打开GCC的pg选项。

-gcov和 gprof的共同点是在编译程序时,加入自己的一些辅助信息,由此来进行程序诊断。

-除此还可使用一些内存泄漏工具,来减少野指针,未释放的内存空间。


调试器:GDB(GNU的调试器)

-GDB可以运行于CLI和GUI两种模式。

-默认GDB是CLI模式的

-可下载安装GUI模式的GDB,如xxgdb, ddd等

-更好的方式是在 EMACS中使用GDB

GDB包括visual studio所有调试功能以及它没有的功能。

-功能列举:1)通过 watch指令,可以让程序在某个变量的值发生变化时,暂停下来。2)通过print指令,在程序运行时,设置变量的值,运行一个程序自身支持的一个方 法。3)通过until指令,我们可以让程序在运行到某个程序时暂停下来。4)通过break.. if指令,使得程序在满足某个bool表达式时,暂停下来。


粘合剂: makefile

-make两大概念:dependencies和rules

-要特别注意TAB键和空格键的区别

-Makefile生成工具:GNU的autoconf。一个GNU程序的编写,需要autoscan, aclocal, autoconf, automake这四个工具。

-我们知道GNU软件安装的三步曲是:./configure, make, make install。其中./configure就是根据autoconf, alocal等工具生成一个makefile文件。make指令就是调用make指令来根据makefile文件的规则来编译源程序。而make install就是执行makefile中的install规则指出的操作(一般是copy操作)。而make clean就是执行makefile中的clean规则指出的操作(一般是rm操作)。

-对于编译出跨平台的C++程序,makefile是一种最方便的机制。