· Linux ELF file format introduction
· 数据结构之红黑树
· LINUX下简单的编译和使用动态链接库[compile .so use c++ in linux]
· How to generate gcc debug symbol outside the build target?
2012-2-13 14:49:37 阅读13 评论0 132012/02 Feb13
2012-1-28 15:14:33 阅读39 评论0 282012/01 Jan28
1. 简介
红黑树是一种自平衡二叉查找树。它的统计性能要好于平衡二叉树(AVL树),因此,红黑树在很多地方都有应用。在C++ STL中,很多部分(目前包括set, multiset, map, multimap)应用了红黑树的变体(SGI STL中的红黑树有一些变化,这些修改提供了更好的性能,以及对set操作的支持)。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是 高效的: 它可以在O(log n)时间内做查找,插入和删除等操作。
本文介绍了红黑树的基本性质和基本操作。
2. 红黑树的性质
红黑树,顾名思义,通过红黑两种颜色域保证树的高度近似平衡。它的每个节点是一个五元组:color(颜色),key(数据),left(左孩子),right(右孩子)和p(父节点)。
2011-12-30 11:36:04 阅读35 评论0 302011/12 Dec30
对动态链接库的概念其实还很模糊,自己的理解是:
把一些常用的代码,如函数,类等,编译成一个"包"即DLL(WINDOWS下)或者SO(LINUX下)文件,
然后供其它程序使用时直接调用里面封闭的函数即可,实现的代码的重用,也节省了
硬盘空间(这点可能是次要的吧).在WIDOWS下利用VC++可方便的生成DLL,在LINUX下则需要通过
各种编译命令来实现,对于像我这种菜鸟级程序员来说是个不小的挑战.
下面用个简单的例子来说明生成一个.SO文件和如何使用它:
1.我这有几个文件:
ConfigMap.cpp ConfigMap.h (读配置文件类)GetWinState.cpp GetWinState.h(ICE接口文件,由SLICE生成) GetWinSysState.cpp GetWinSysState.h (远程接口实现文件)
2011-11-16 23:42:11 阅读27 评论0 162011/11 Nov16
2011-11-15 23:56:27 阅读34 评论0 152011/11 Nov15
http://www.cnblogs.com/iceocean/archive/2010/01/18/1650926.html
Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制。在Linux2.4.21中,等待队列在源代码树include/linux/wait.h中,这是一个通过list_head连接的典型双循环链表,如下图所示。
2011-9-14 11:08:26 阅读32 评论0 142011/09 Sept14
2011-9-9 9:28:58 阅读40 评论0 92011/09 Sept9
http://stackoverflow.com/questions/866721/how-to-generate-gcc-debug-symbol-outside-the-build-target
2011-9-8 17:16:46 阅读54 评论0 82011/09 Sept8
1.默认crosstool交叉编译器没有自带gdbserver,需要自行编译
到GNU官方FTP下载,目前最新版的是gdb-6.7.1
下载地址:http://ftp.gnu.org/gnu/gdb/
注:若已有gdbserver,可以直接跳到步骤4
2.编译gdbserver
编译GDB源码时只需要编译出gdbserver就可以了,交叉编译器自带arm-linux-gdb(client端)可以使用。
gdb-6.7.1
# cd gdb-6.7.1/gdb/gdbserver/
#./configure --host=arm-linux --prefix=/work/install/gdbserver
2011-8-2 19:03:33 阅读31 评论0 22011/08 Aug2
:s/string_1/string_2/g string_1 string_2
:n,$s/string_1/string_2/ n string_1 string_2
:n,$s/string_1/string_2/g n string_1 string_2
n n .
:%s/string_1/string_2/( :g/string_1/s//string_2/) string_1 string_2
:%s/string_1/string_2/g( :g/string_1/s//string_2/g) string_1 string_2
2011-7-21 23:40:05 阅读76 评论0 212011/07 July21
|