<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[linuxqb的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/linuxqb</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; linuxqb]]></copyright><item><title><![CDATA[libmad  在android源码里编译]]></title><link>https://blog.youkuaiyun.com/linuxqb/article/details/79167329</link><guid>https://blog.youkuaiyun.com/linuxqb/article/details/79167329</guid><author>linuxqb</author><pubDate>Thu, 25 Jan 2018 22:20:19 +0800</pubDate><description><![CDATA[下载libmad最新版本libmad-0.15.1b
添加Android.mk，内容如下LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := libmad
LOCAL_CFLAGS := -DHAVE_CONFIG_H -DFPM_DEFAULT
#LOCAL_LDLIBS := -pthread
LOCAL_SH]]></description><category></category></item><item><title><![CDATA[error: "no FPM selected"]]></title><link>https://blog.youkuaiyun.com/linuxqb/article/details/79151715</link><guid>https://blog.youkuaiyun.com/linuxqb/article/details/79151715</guid><author>linuxqb</author><pubDate>Wed, 24 Jan 2018 15:47:33 +0800</pubDate><description><![CDATA[移植libmad时，出现error: "no FPM selected"


解决方法：
         在makefile里面定义FPM = -DFPM_ARM
INCLUDE = $(FPM)]]></description><category></category></item><item><title><![CDATA[ARM 处理器寻址方式]]></title><link>https://blog.youkuaiyun.com/linuxqb/article/details/53114672</link><guid>https://blog.youkuaiyun.com/linuxqb/article/details/53114672</guid><author>linuxqb</author><pubDate>Thu, 10 Nov 2016 12:52:38 +0800</pubDate><description><![CDATA[ARM 处理器寻址方式

寻址方式是根据指令中给出的地址码字段来实现寻找真实操作数地址的方式，ARM
处理器有 9 种基本寻址方式。


寄存器寻址

操作数的值在寄存器中， 指令中的地址码字段指出的是寄存器编号， 指令执行时直
接取出寄存器值操作。
寄存器寻址指令举例如下：
MOV R1,R2
;R2 -> R1
SUB R0,R1,R2
;R1 - R2 -> R0]]></description><category></category></item><item><title><![CDATA[（GCC）编译程序过程及完成的工作]]></title><link>https://blog.youkuaiyun.com/linuxqb/article/details/52984772</link><guid>https://blog.youkuaiyun.com/linuxqb/article/details/52984772</guid><author>linuxqb</author><pubDate>Mon, 31 Oct 2016 18:26:31 +0800</pubDate><description><![CDATA[1、预处理(cpp)

调用预处理器cpp解释（#）开头的语句，删除注释，添加调试信息

gcc hello.c -o hello.i -E
2、编译(ccl)

生成对应平台的汇编语言

gcc hello.i -o hello.s -S
3、汇编(as)

翻译成可重定位文件

gcc hello.s -o hello.o -c
4、链接(ld)

重定位，合]]></description><category></category></item><item><title><![CDATA[c语言中标识符命名规则]]></title><link>https://blog.youkuaiyun.com/linuxqb/article/details/52959092</link><guid>https://blog.youkuaiyun.com/linuxqb/article/details/52959092</guid><author>linuxqb</author><pubDate>Fri, 28 Oct 2016 19:24:21 +0800</pubDate><description><![CDATA[标识符指的是函数名，变量名
1、只能包含数字、字母以及下划线，不能包含其他特殊字符
2、只能以字母或下划线开头
3、不能以系统已有的关键字重名


命名规则
max-info:尽可能包含多的信息
min-length:尽可能的短]]></description><category></category></item><item><title><![CDATA[const   和  restrict]]></title><link>https://blog.youkuaiyun.com/linuxqb/article/details/52930840</link><guid>https://blog.youkuaiyun.com/linuxqb/article/details/52930840</guid><author>linuxqb</author><pubDate>Wed, 26 Oct 2016 08:39:26 +0800</pubDate><description><![CDATA[const 

定义一个只读的变量
const int a = 1;
const型的变量是只读的，不可赋值
只读的变量并非常量，不可用在case语句中
const char *p 不可通过p修改p指向的内容
char * const p p指针是只读的不可改变的



restrict 类型限定符

不能通过除该指针外所有其他直接或间接的方式修改该对象的内容]]></description><category></category></item><item><title><![CDATA[vim 的配置]]></title><link>https://blog.youkuaiyun.com/linuxqb/article/details/52761260</link><guid>https://blog.youkuaiyun.com/linuxqb/article/details/52761260</guid><author>linuxqb</author><pubDate>Sat, 08 Oct 2016 22:34:51 +0800</pubDate><description><![CDATA[vim 的配置
打开/etc/vim/vimrc
在最后一行加入
set nu 
设置行号
set tabstoop=4
设置退格为4字节
set nobackup
覆盖文件时不备份
set cursorline
突出显示当前行
set ruler 
打开状态栏标尺
set autoindent
自动切换当前目录为当前文件所在的目录
set mouse=a 
设置鼠]]></description><category></category></item><item><title><![CDATA[linux目录]]></title><link>https://blog.youkuaiyun.com/linuxqb/article/details/52752300</link><guid>https://blog.youkuaiyun.com/linuxqb/article/details/52752300</guid><author>linuxqb</author><pubDate>Fri, 07 Oct 2016 22:28:33 +0800</pubDate><description><![CDATA[/bin 二进制可执行命令
/dev 设备特殊文件
/etc 系统管理和配置文件
/etc/rc.d 启动的配置文件和脚本
/home 用户主目录的基点，比如用户user的主目录就是/home/user，可以用~user表示
/lib 标准程序设计库，又叫动态链接共享库，作用类似windows里的.dll文件
/sbin 超级管理命令，这里存放的是系统管理员使用的管理程序
/tmp]]></description><category></category></item><item><title><![CDATA[linux c写的一个航班查询的程序]]></title><link>https://blog.youkuaiyun.com/linuxqb/article/details/52699574</link><guid>https://blog.youkuaiyun.com/linuxqb/article/details/52699574</guid><author>linuxqb</author><pubDate>Thu, 29 Sep 2016 10:56:11 +0800</pubDate><description><![CDATA[之所以把这个代码称为一个程序而不叫一个项目，是因为鄙人还是个还没入行的新人，不敢妄自菲薄，只因一时兴起上来感慨吐槽一番，如果有什么不对的地方，请各位大牛高台贵手，如果能提点一番，小弟感激不尽
废话不多，拿到题目就开干。
刚学完内核链表，就拿它来开刀。内核给你写好封装一些链表操作的接口函数，拿来用多爽，不用自己写。这个写好的东西在哪呢，在内核目录的include/linux/下。
{优快云:]]></description><category></category></item><item><title><![CDATA[Linux常用命令]]></title><link>https://blog.youkuaiyun.com/linuxqb/article/details/52528949</link><guid>https://blog.youkuaiyun.com/linuxqb/article/details/52528949</guid><author>linuxqb</author><pubDate>Tue, 13 Sep 2016 20:02:18 +0800</pubDate><description><![CDATA[1.alias

给一个命令取别名

alias c='clear'

给clear取了一个别名叫'c'，敲c就可以清屏了

alias的命令可以带参数

alias ll='ls -l'

如果要永久有效，必须将命令写入~/.bashrc的末尾
2.cat

查看一个文件的内容

cat filename 

查看文件中不可见的字符

cat filen]]></description><category></category></item><item><title><![CDATA[虚拟机与Windows文件传输]]></title><link>https://blog.youkuaiyun.com/linuxqb/article/details/52523170</link><guid>https://blog.youkuaiyun.com/linuxqb/article/details/52523170</guid><author>linuxqb</author><pubDate>Tue, 13 Sep 2016 09:45:13 +0800</pubDate><description><![CDATA[方法1：通过vmware_tools这个工具创建共享

             （1）现在windows环境中新建一个空白文件夹（随便哪里都行），点击ubuntu中的虚拟机按钮----》选择设置---》点击选项---》选择共享文件夹----》总是启用----》点击添加，手动找到你之前新建的那个文件夹---》确认保存退出

             （2）如何进入共享：   cd
  /]]></description><category></category></item><item><title><![CDATA[vim编译器]]></title><link>https://blog.youkuaiyun.com/linuxqb/article/details/52516698</link><guid>https://blog.youkuaiyun.com/linuxqb/article/details/52516698</guid><author>linuxqb</author><pubDate>Mon, 12 Sep 2016 20:24:22 +0800</pubDate><description><![CDATA[vim 常用命令
：w 保存当前文件
：w filename 如果进入没有指定文件名，在保存文件时需要加上文件名；如果有指定那么相当于另存为
：q 退出
：q！ 强制退出，不保存
：wq！ 强制保存退出
：wq 保存退出
u 撤销最近一次操作
i 在光标前面插入字符
x 剪切字符 前面可以加n
dd 剪切一行+n
yy 复制一行+n
p 黏贴
gg 跳到文本最初行
G]]></description><category></category></item><item><title><![CDATA[Linux软件安装]]></title><link>https://blog.youkuaiyun.com/linuxqb/article/details/52516608</link><guid>https://blog.youkuaiyun.com/linuxqb/article/details/52516608</guid><author>linuxqb</author><pubDate>Mon, 12 Sep 2016 20:15:33 +0800</pubDate><description><![CDATA[1、指定服务器
在Edit菜单Software Sources选项 Download from 下拉框选择距离最近的服务器


2、更新软件列表
sudo apt-get update


3、下载并安装
sudo apt-get install xxx


4、卸载
sudo apt-get remove xxx]]></description><category></category></item><item><title><![CDATA[Linux网络配置]]></title><link>https://blog.youkuaiyun.com/linuxqb/article/details/52516221</link><guid>https://blog.youkuaiyun.com/linuxqb/article/details/52516221</guid><author>linuxqb</author><pubDate>Mon, 12 Sep 2016 19:20:54 +0800</pubDate><description><![CDATA[1、用vi 打开/etc/network/interfaces
auto lo
iface lo inet loopback


auto eth0  （自动识别启动以太网）
iface eth0 inet static （固定IP地址，static改成dhcp并注释下面三行自动获取IP）
address xxx.xxx.xxx.xxx （虚拟机IP地址）
gateway xxx.]]></description><category></category></item><item><title><![CDATA[零长数组（柔性数组）]]></title><link>https://blog.youkuaiyun.com/linuxqb/article/details/52494582</link><guid>https://blog.youkuaiyun.com/linuxqb/article/details/52494582</guid><author>linuxqb</author><pubDate>Sat, 10 Sep 2016 13:39:21 +0800</pubDate><description><![CDATA[零长数组一般在结构体中使用，并且放在结构体的末尾。在没有给零长数组分配空间之前是不能使用它的。
它可以根据你的数据大小变化而变化。

#include 
#include 
#include 

struct data
{
	int msglength;
	char msg[0];
};

int main(int argc, char *argv)
{
	char buf]]></description><category></category></item><item><title><![CDATA[大端序与小端序]]></title><link>https://blog.youkuaiyun.com/linuxqb/article/details/52490344</link><guid>https://blog.youkuaiyun.com/linuxqb/article/details/52490344</guid><author>linuxqb</author><pubDate>Fri, 09 Sep 2016 20:39:26 +0800</pubDate><description><![CDATA[小端序就是高字节的数据存储到高地址，低字节的数据存储在低地址。
大端序就是高字节的数据存储在低地址，低字节的数据存储在高地址。
例如：0x12345678    小端序储存就是 0x12345678    
大端序储存就是0x78563412
那么怎么来看自己的机子是大端序还是小端序呢，可以写个程序来测一下

/*
查看电脑是大端序，还是小端序
*/
#include 

int mai]]></description><category></category></item><item><title><![CDATA[Makefile编程]]></title><link>https://blog.youkuaiyun.com/linuxqb/article/details/52490094</link><guid>https://blog.youkuaiyun.com/linuxqb/article/details/52490094</guid><author>linuxqb</author><pubDate>Fri, 09 Sep 2016 19:31:49 +0800</pubDate><description><![CDATA[Makefile文件的写法有很多种，在工程目录当中，每一个文件目录下面都有一个Makefile文件（含有.c的目录），Makefile使得编译程序更加简单
第一种：
hello:hello.c
    gcc hello.c -o hello
其中hello:hello.c  中的hello就是最终要生成的目标文件，hello.c就是生成目标文件所需要的依赖文件，下面是我们经常使用的shell编译]]></description><category></category></item><item><title><![CDATA[数组的地址]]></title><link>https://blog.youkuaiyun.com/linuxqb/article/details/52457454</link><guid>https://blog.youkuaiyun.com/linuxqb/article/details/52457454</guid><author>linuxqb</author><pubDate>Wed, 07 Sep 2016 10:49:09 +0800</pubDate><description><![CDATA[本人用的是32位机，64位的请自行推算
一维数组的地址

#include 

int main(int argc, char *argv[])
{
	int a[2];
	printf("a address is %p\n", a);
	printf("&a[0] address is %p\n", &a[0]);
	printf("a+1 address is %p\n", a+]]></description><category></category></item><item><title><![CDATA[删除重复字符]]></title><link>https://blog.youkuaiyun.com/linuxqb/article/details/52456923</link><guid>https://blog.youkuaiyun.com/linuxqb/article/details/52456923</guid><author>linuxqb</author><pubDate>Wed, 07 Sep 2016 10:10:27 +0800</pubDate><description><![CDATA[方法1]]></description><category></category></item><item><title><![CDATA[数3出局（约瑟夫环）]]></title><link>https://blog.youkuaiyun.com/linuxqb/article/details/52456721</link><guid>https://blog.youkuaiyun.com/linuxqb/article/details/52456721</guid><author>linuxqb</author><pubDate>Wed, 07 Sep 2016 09:55:53 +0800</pubDate><description><![CDATA[/*
数3出局   约瑟夫环
*/
#include 

int main(int argc, char *argv[])
{
	int i,k=1;
	int num,m=0;
	int a[30]={0};
	
	printf("please input a numble:\n");
	scanf("%d",&num);
	
	for(i=0;i<num;i++)]]></description><category></category></item></channel></rss>