Linux
Blaider
这个作者很懒,什么都没留下…
展开
-
GCC的DEBUG和release版本编译方法
利用gcc的 -DDEBUG选项。1. 源文件DEBUG.c中有:#include int main(int argc, char *argv[]){#ifdef DEBUG printf("DEBUG is definded \n");#else printf("DEBUG is not definded \n");#endif}2. Ma原创 2011-12-05 19:15:55 · 25941 阅读 · 0 评论 -
命令:time 使用方法
名称: time使用权限: 所有使用者 使用方式: time [options] COMMAND [arguments] 说明: time 指令的用途,在于量测特定指令执行时所需消耗的时间及系统资源等资讯。例如 CPU 时间、记忆体、输入输出等等。需要特别注意的是,部分资讯在 Linux 上显示不出来。这是因为在 Linux 上部分资源的分配函式与 time 指令所预设的方式并不相同,转载 2011-12-09 09:17:41 · 1073 阅读 · 0 评论 -
开始龙芯之旅
最近在公司里搞龙芯开发板。非常想强迫自己学习下Linux,也顺便学习下龙芯。于是在淘宝上购买了一台龙芯笔记本。正好赶上厂家促销,5.5折。用1500个大洋购买了一台8089B。虽然是个小小的上网本。但是硬盘也有160G啊,即使不想好好地使用它,至少也可以当个存放文件小服务器嘛。用将近一个月的工资购买了一台国产垃圾。下面的日子就开始咱们的龙芯这旅吧。原创 2011-12-14 23:26:19 · 1360 阅读 · 1 评论 -
Linux下Makefile的automake生成全攻略
一直没有正式开发过一个完整的程序,进的小公司也没有什么有经验的前辈带着来做项目。正好最近在编写个程序。感觉大家发布的源文件用configure安装很酷,于是就在网络上搜索了制作方法。下面的文章是从网络上找到的一个比较初级的文章,在Ubuntu下试了,可以正常做,转过来供自己以后参考使用吧。同时继续探索如何自动生成内核模块的Makefile自动生成方法。 作为Linux下的程序开发人员,大家一定转载 2012-03-03 14:21:11 · 3237 阅读 · 0 评论 -
D. Autoconf Macro Reference
This is an alphabetical list of each Autoconf macro used in this book,along with a description of what each does. They are provided for yourreference while reading this book. The descriptions are only转载 2012-03-10 22:53:56 · 1194 阅读 · 0 评论 -
一个 autoconf / automake 例子 --- 静态库、动态库 多源文件
###这是一个 autoconf / automake 的 "Hello World"gztt.ll@gmail.com主要步骤是- 准备工程目录结构和程序- autoscan 生成 configure.scan- 编辑修改 configure.scan,重命名为 configure.ac 或 configure.in- aclocal; libtoolize; a转载 2012-03-10 17:21:01 · 1126 阅读 · 0 评论 -
vi/vim文件打开时显示正在打开文件名称的方法
修改vimrc文件,添加如下语句,就会在打开窗口的最下面倒数第二行显示正在打开文件的名称及总行数等信息set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%] set laststatus=2 " always show the status line 每次打开文件时自动显示行号set no原创 2012-03-13 23:24:01 · 1325 阅读 · 0 评论 -
autotools automake autoconf libtool 笔记
autotools automake autoconf libtool 笔记 默认安装路径为:$(prefix) = /usr/local,可以通过./configure --prefix=的方法来覆盖。其它的预定义目录还包括:bindir = $(prefix)/bin, libdir = $(prefix)/lib, datadir = $(prefix)/share, sysconf转载 2012-04-05 10:35:15 · 1013 阅读 · 0 评论 -
从无到有制作Deb包的一个实例
从无到有制作Deb包的一个实例从无到有制作Deb包的一个实例20080126 我希望从零开始制作出一个自己的Deb包,意思是连软件的源码都是自己写的,类似于deb from scratch吧,那么这样的一个制作过程大致由三部分构成: 1 源码的编写和测试 2 使用autotools工具生成符合Gnu编程标准的相关文件,如configure,makefile等。 3 按照转载 2012-03-22 22:55:48 · 730 阅读 · 0 评论 -
在Debian中打造属于自己的deb包
问题:如果你要在Debian系统中发布一款软件或者一个包,该如何做呢?如果你的项目中有各种二进制包,该如何维护呢?如果你自己做了一款小小的实用软件,该如何与朋友分享呢?…….案例:假如我从网上下载了eclipse-SDK-3.1-linux-gtk.tar.gz压缩文件,我想把他安装到/opt/eclipse目录下,且菜单Apps-->Programming中有Eclipse菜单项。并转载 2012-03-22 22:40:01 · 1100 阅读 · 0 评论 -
ubuntu 安装svn
环境:ubuntu10.04LTS1、在终端中直接输入 sudo apt-get install subversion,选择安装即可2、查看版本命令 svnserve --version(更多命令直接键入svnserve --help可查看到)3、查看svnserver是否已启动: netstat -ntlp,可看到svn对应的端口3690(如果没有看见,则证明服务未启动,可使用sv转载 2012-04-23 21:22:31 · 606 阅读 · 0 评论 -
incompatible implicit declaration of built-in function
incompatible implicit declaration of built-in function解决方法,加上以下:#include #include #include原创 2012-04-15 15:32:59 · 1158 阅读 · 0 评论 -
Linux守护进程小样例
程序目的:设计三个并发的守护进程在后台运行,其中第一子进程写守护进程的运行日志记录,第二子进程child2则监控进程中是否有gedit工具调用,第二子进程child3则检查自己是否有新邮件到达,若有则将邮件内容输出到一个主目录下文件 程序分析:此处我借用fork()函数创建三个并发的守护进程,借用syslog调试程序运行;其中,第二子进程child2作为gedit工具调用的监控守护进程,转载 2012-04-17 23:01:01 · 1167 阅读 · 0 评论 -
nanosleep() & sleep()
2007年06月13日 星期三 11:29 用户程序中的睡眠: sleep() usleep() nanosleep() sleep()和nanosleep()都是使进程睡眠一段时间后被唤醒,但是二者的实现完全不同。 Linux中并没有提供系统调用sleep(),sleep()是在库函数中实现的,它是通过调用alarm转载 2012-04-18 10:24:52 · 2543 阅读 · 1 评论 -
Linux中多线程编程并传递多个参数的简单例子
如果想传递给线程函数一个整数,又不想编译的时候报Warning怎么办?如果想要给线程函数传递多个函数怎么办?下面的例子已经可以说明一切了。今天上午实验了Linux下的多线程编程,并将多个参数传递给线程要执行的函数。以下是实验程序的源代码:/*********************** pthread.c ***************************/转载 2012-04-17 22:12:04 · 2985 阅读 · 0 评论 -
内核timer使用
init_timer,初始化add_timer,启动mod_timer,修改del_timer,删除timer_list结构function定时函数data定时函数所需的参数expires期望的定时时间如jiffies+xx*HZ表示几秒后// declare timer_list, define functionstruct timer_list* ti;转载 2012-04-19 10:07:35 · 1203 阅读 · 0 评论 -
关于Linux下Eclipse及ARM-linux编译方法的文章
http://www.cnblogs.com/beer/archive/2011/05/05/2037449.html原创 2012-04-21 14:05:40 · 710 阅读 · 0 评论 -
makfile 中 $$ 变量的含义
例子:dep: sed '/\#\#\# Dependencies/q' tmp_make (for i in init/*.c;do echo -n "init/";$(CPP) -M $$i;done) >> tmp_make # cp tmp_make Makefile (cd fs; make dep) (cd kernel转载 2012-04-21 23:47:08 · 1018 阅读 · 0 评论 -
使用eclipse开发linux驱动
Eclipse具有很强大的自动补全功能,在浏览代码和编辑代码的时候用起来十分得心应手,下面我将介绍如何配置Eclipse,让它来帮助我们开放linux驱动(注意,此处说的Eclipse是Eclipse IDE for C/C++ Developers 。而不是Eclipse IDE for Java Developers 安装CDT插件后)。1、新建一个c project。此项目专原创 2012-04-18 18:58:15 · 4182 阅读 · 1 评论 -
Eclipse简单配置
一、C/C++环境配置:Window - Preferences - C/C++ 1、Appearance,选中Group method definitions in the Outline view 2、 Code Style,通过New来新建一个代码风格,命名为qpsoft,且初始化为BSD/Allmain,然后按习惯修改一些细节。我建议是采用默认的,或许是我转载 2012-04-20 21:00:43 · 863 阅读 · 0 评论 -
普通的内核模块Makefile
一个普通的内核模块Makefile文件一般是下面的样子 pwd = $(shell pwd) KERNEL_SRC = /lib/modules/$(shell uname -r)/build obj-m := hello.o hello-objs := hello.o all: $(MAKE) -C $(KERNEL_SRC原创 2012-04-21 23:31:50 · 1185 阅读 · 0 评论 -
学习linux/unix编程方法的建议
首先先学学编辑器,vim, emacs什么的都行。 然后学make file文件,只要知道一点就行,这样就可以准备编程序了。 然后看看《C程序设计语言》K&R,这样呢,基本上就可以进行一般的编程了,顺便找本数据结构的书来看。 如果想学习UNIX/LINUX的编程,《APUE》绝对经典的教材,加深一下功底,学习《UNP》的第二卷。这样基本上系统方面的就可以掌握了。转载 2012-06-03 23:18:13 · 803 阅读 · 0 评论 -
gdb watch
gdb watch 跟踪变量的变化01 #include 02 #include 03 #include 04 05 int main()06 {07 char * name = NULL;08 int len = 10;09 10 name = (char *)malloc(len);11 strncpy(name,转载 2012-05-17 21:50:47 · 2721 阅读 · 0 评论 -
在Linux下产生并调试core文件
$ uname -aLinux dev 2.4.21-9.30AXsmp #1 SMP Wed May 26 23:37:09 EDT 2004 i686 i686 i386 GNU/Linux再看看默认的一些参数,注意core file size是个0,程序出错时不会产生core文件了。$ ulimit -acore file size (blocks, -c) 0data转载 2012-05-17 21:53:09 · 750 阅读 · 0 评论 -
Standard Predefined Macros
3.7.1 Standard Predefined Macros The standard predefined macros are specified by the C and/or C++ language standards, so they are available with all compilers that implement those standards. Older c转载 2012-05-17 22:31:04 · 756 阅读 · 0 评论 -
gdb 条件断点
gdb 条件断点 1.有时候,我们需要断点在循环的某个条件处时,比如以下代码:#include int main(int argc,char *argv[]){ int i=0; for ( ; i { int m; m = i; } return 0;}2.开始编译#cc -g main.c将生成转载 2012-05-17 21:46:07 · 6365 阅读 · 0 评论 -
GDB中应该知道的几个调试方法
七、八年前写过一篇《用GDB调试程序》,于是,从那以后,很多朋友在MSN上以及给我发邮件询问我关于GDB的问题,一直到今天,还有人在问GDB的相关问题。这么多年来,有一些问题是大家反复在问的,一方面,我觉得我以前的文章可能没有说清楚,另一方面,我觉得大家常问的问题正是最有用的,所以,在这里罗列出来。希望大家补充。一、多线程调试多线程调试可能是问得最多的。其实,重要就是下面几个命令:转载 2012-05-17 22:06:44 · 508 阅读 · 0 评论 -
linux下查看中断请求记录 IRQ
linux下查看中断请求记录。通过cpu的中断请求的响应,可以看出cpu都在为哪些设备干活,干的活有多少量等信息。 [~]$ cat /proc/interrupts CPU0 CPU1 CPU2 CPU3 0: 1383283707 0 0转载 2012-05-21 08:52:42 · 1474 阅读 · 0 评论 -
Linux IPC总结
IPC进程间通信(Inter-Process Communication)就是指多个进程之间相互通信,交换信息的方法。Linux IPC基本上都是从Unix平台上继承而来的。主要包括最初的Unix IPC,System V IPC以及基于Socket的IPC。另外,Linux也支持POSIX IPC。System V,BSD,POSIX System V是Unix操作系统最早的商业发原创 2012-06-10 19:00:35 · 608 阅读 · 0 评论 -
Linux下的PIPE
#include #include #include int main(void){ int n; int fd[2]; pid_t pid; char line[3000]; if(pipe(fd)<0)//pipe printf("pipe error"); if((pid=fork())<0)//fork {printf("fork原创 2012-06-10 18:44:23 · 864 阅读 · 0 评论 -
Linux下的IPC-命名管道的使用
一、概述进程之间通过管道来进行通讯是一种常用的方法,顾名思义,管道就是一端进(写)一端出(读)的FIFO队列,这个队列由内核管理,有一定大小(一般是4k),有文章上提到,如果需要修改该缓存区,需要重新编译内核(修改linux/limits.h里PIPE_BUF的定义)。需要明确的是,虽然管道在理论上是双向的,但实际应用时,为避免复杂,都单向来用,需要双向通讯时,采用两个管道进行。具有亲原创 2012-06-10 18:53:46 · 896 阅读 · 0 评论 -
如何查看linux中的MBR记录
大家是不是经常会谈论到MBR(main boot record)。MBR是由bootloader、dpt、结尾标志组成的。简单的来说MBR=bootloader+dpt+结尾标志(55 aa)。其中bootloader即引导记录(446字节),dpt磁盘分区表(64字节)结尾标志(2字节)。那我们怎么看这里面的内容呢,哈哈。linux有很方便的方法。请大家接着往下看: 1、[root@转载 2012-06-13 22:32:54 · 11452 阅读 · 2 评论 -
一个精简内核配置的方法 (感谢 flw2 兄分享)
如果经常编译新内核(不管是什么目的), 或者需要修改内核的某些代码做测试,虽然make会选择的编译有必要重新编译的部分,但是如果修改了某个核心的头文件可能需要重新编译很多内容所以把不需要使用的模块不编译是能节省不少时间的编译内核大部分时间都在编译模块上, 比如我的机器:find /lib/modules/2.6.37-rc5+/ -name "*.ko"|wc -l23转载 2012-06-13 22:49:54 · 826 阅读 · 0 评论 -
郁闷的串口中断 nobody cared
这几天碰到一个很奇怪的问题, kernel 启动的时候,会碰到 抱怨 irq 19: nobody cared. 这个中断是串口中断. 而且我确认串口是可以work的. 因为在 early console->console 已经成功了.经过一番搜索, 发现把kernel_init 函数中的 /* Open the /dev/console on the rootfs, this转载 2012-06-13 22:26:00 · 1493 阅读 · 0 评论 -
watchdog linux
2007 年 10 月 29 日Linux 在不同领域如电信、终端便携设备等得到广泛应用,不同领域的应用对 Linux系统也提出相应的需求。Carrier Grade Linux 是 OSDL(Open Source Development Lab)发布的电信级 Linux 的标准,在系统可用性这部分指出 Linux 必须支持 watchdog 机制。Linux 内核从 1.3.51 版本开使转载 2012-06-13 22:30:09 · 1375 阅读 · 0 评论 -
一个精简内核配置的方法 (感谢 flw2 兄分享)
如果经常编译新内核(不管是什么目的), 或者需要修改内核的某些代码做测试,虽然make会选择的编译有必要重新编译的部分,但是如果修改了某个核心的头文件可能需要重新编译很多内容所以把不需要使用的模块不编译是能节省不少时间的编译内核大部分时间都在编译模块上, 比如我的机器:find /lib/modules/2.6.37-rc5+/ -name "*.ko"|wc -l23转载 2012-06-13 22:49:40 · 1483 阅读 · 0 评论 -
System.map
第一部分:System.map的作用有关System.map文件的信息好象很缺乏。其实它一点也不神秘,并且在整个事情当中它并不象看上去那么得重要。但是由于缺乏必要的文档说明,使其显得比较神秘。它就象耳垂,我们每个人都有,但却不知道是干什么用的。注意,我并不会是百分之一百正确的。例如,一个系统很可能没有/proc文件系统支持,但是大多数系统肯定有。这里我假定你是“随大流的”,并有一个典型配置的系转载 2012-06-13 10:37:48 · 772 阅读 · 0 评论 -
VIM中的global
global命令是Vim最强大的命令之一(个人认为是No.1),将其摸透用熟可以事半功倍,本文总结了版上的一些经典问题,结合自己的使用和理解,试图通过实例详细介绍一下其用法。示例难度不一,有些并没有多少实用性,为题而生,读者各取所需吧。示例说明并不非常细致,以免罗唆。每节标题下列出了所涉及的内容在Vim help中的位置,以供查找。文中用词未必标准(我没看过Vim中文帮助),观点也转载 2012-06-14 09:25:37 · 1090 阅读 · 0 评论 -
回车与换行
Windows下,用\n代表回车+换行,在Linux下要用\n\r代表回车+换行\n是换行符,英文名称linefeed(LF),ASCII是0xA(10)。Linux下光标会移动到下一行,但是横坐标不改变。\r是回车符,英文名称carrige return(CR),ASCII是0xD(13)。Linux下光标会移动到行首。原创 2012-06-14 21:08:30 · 619 阅读 · 0 评论 -
dpkg常用参数
dpkg --info "软件包名" --列出软件包解包后的包名称.dpkg -l --列出当前系统中所有的包.可以和参数less一起使用在分屏查看. (类似于rpm -qa)dpkg -l |grep -i "软件包名" --查看系统中与"软件包名"相关联的包.dpkg -s 查询已安装的包的详细信息.dpkg -L 查询系统中已安装的软件包所安装的位置. (类似于rpm -ql原创 2012-06-25 10:13:10 · 2526 阅读 · 0 评论