摘要:
1. make distclean2. 配置内核 ----> 生成 .config文件make menuconfig ARCH=armMakefile文件分析:3. 编译内核make uImage ARCH=arm CROSS_COMPLIE=arm-linux-编译完成后位于 ARCH/arm/boot/zImage4. 内核启动流程 (终极目标:挂在根文件系统,运行应用程序)4. 文件系统5. 如何制作linux嵌入式所需的文件系统?a. 创建目录和文件b. 为创建的目录和文件建立管理数据。6. 如何创建根文件系统etc 包含 fstab init.d inittab profile 阅读全文
摘要:
1. 非阻塞并发模型直接将socket设置为非阻塞, 轮询处理连接和接收。缺点: 极大消耗CPU资源,不适合实际应用。2. 信号驱动模型当Socket文件描述符准备就绪后 内核会给进程发送一个 SIGIO 或 SIGPOLL信号,signal(SIGIO, fun);实际中 并不只有套接字有输入时才会发出这些信号, 实际情况中并不能用。3. 超时并发模型A: 通过套接字选项设置超时 通过套接字选项SO_SNDTIMEO 和 SO_RCVTIMEO设置读写超时,但是只能设置读写超时,不能设置connect 和 accept 等连接超时,并且有的系统不支持。B: 通过信号SIGALRM 设置超时# 阅读全文
摘要:
makefile下$(wildcard $^),$^,$@,$?,$ $@当执行此规则的命令时,自动环变量“$*”被展开为“茎” 在这里就是。“big” “little”和。静态模式规则对一个较大工程的管理非常有用。它可以对整个工程的同一类文件的重建规则进行一次定义,而实现对整个工程中此类文件指定相同的重建规则。比如,可以用来描述整个工程中所有的.o 文件的依赖规则和编译命令。通常的做法是将生成同一类目标的模式定义在一个 make.rules 的文件中。在工程各个模块的 Makefile 中包含此文件。静态模式makefile中$(cobjs): $(obj)/%.o: $(src)/%.ch 阅读全文
摘要:
gcc是C编译器;g++是C++编译器;linux下cc一般是一个符号连接,指向gcc;gcc和g++都是GUN(组织)的编译器。而CC则一般是makefile里面的一个名字,即宏定义,嘿,因为Linux/Unix都是大小写敏感的系统,这点一定要注意。cc是Unix系统的C Compiler,而gcc则是GNU Compiler Collection,GNU编译器套装。gcc原名为Gun C语言编译器,因为它原本只能处理C语言,但gcc很快地扩展,包含很多编译器(C、C++、Objective-C、Ada、Fortran、Java)。因此,它们是不一样的,一个是古老的C编译器,一个是GNU编译 阅读全文
摘要:
1. 目标 依赖 命令make会比较targets文件和prerequisites文件的修改日期,如果prerequisites文件的日期要比targets文件的日期要新,或者target不存在的话,那么,make就会执行后续定义的命令。2. 示例一在Makefile中的命令,必须要以[Tab]键开始。#include#include"add.h"int main(){ int result=0; result = add(2, 3); printf("2+3=%d\n", result);}main: main.o add.ogcc -o main m 阅读全文