
C
harjay
站在悬崖,心如止水。
展开
-
交叉编译OpenSSL和curl
1 第一步 解压openss压缩包tar xvf openssl-1.0.2h.tar.gz2 第二步 配置生成目录和交叉编译工具链./config --prefix=/home/xxx/work/ingenic/curl/libs --cross-compile-prefix=mips-linux-uclibc-gnu- no-asm shared3 第三步 执行make depen4 第四步 执行make install5. 生成成功...原创 2020-09-12 17:10:16 · 642 阅读 · 0 评论 -
16ev200内核编译过程遇到的问题
1. ubuntu13.04 16ev200 编译内核时报错liu@ubuntu:~/hisi/16ev200/Hi3516EV200R001C01SPC011/01.software/board/Hi3516EV200_SDK_V1.0.1.1/osdrv/opensource/kernel/linux-4.9.y$ make ARCH=arm CROSS_COMPILE=arm-himix1...原创 2020-01-17 14:42:59 · 852 阅读 · 1 评论 -
强制转换结构体中的变量的陷阱
当你强制转换结构体中的变量的数据类型时,一定要注意变量的类型是放大其范围 还是缩小其范围,当放大范围时 该数据被修改的同时会影响到该变量后面的数据,切记切记!比如 结构体 有变量 char data1, char data2 如果data1被这样调用 (int *)data1 =1, 则data1被修改为0....原创 2020-09-12 17:08:33 · 268 阅读 · 0 评论 -
创建线程失败之no space left on device
pthread_create创建线程失败出现errno 28no space left on device一般是内存申请失败 和 线程数达到最大值。原创 2020-09-12 17:15:22 · 403 阅读 · 0 评论 -
海思mksquashfs制作squashfs文件系统
1. 首先生成mksquashfs工具,进入osdrv\tools\pc\squashfs4.3,make 生成mksquashfs,大约1.2M,制作squashfs命令:mksquashfs ${BASE_ROOTFS} ${PRODUCT}-rootfs.sqsh4 -b 64K -comp xz -noappend2.内核kernel支持squashfs4.0文件系统cp ar...原创 2020-09-12 17:12:03 · 4566 阅读 · 0 评论 -
创建分离线程-自动回收资源
void Thrd(void* ptr){你的代码。}pthread_t pid;pthread_attr_t attr;pthread_attr_init(&attr);pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);//设置为分离线程pthread_create(&pid, &a原创 2015-03-26 11:34:58 · 229 阅读 · 0 评论 -
程序头文件相关性错误
In file included from /home/jack//***/***/module/src/mp.c:19:/home/jack/***/***/***/***mpupdate.h:44: error: expected ')' before '*' token/home/jack/***/***/***/***/mpupdate.h:45: error: expected原创 2015-03-26 10:22:42 · 235 阅读 · 0 评论 -
linux-静态库和动态库
1. 生成方式静态库:首先将源文件编译成目标文件:gcc –c test.c -o test.o然后生成静态库:ar –rc libstatic.a test.o共享库:首先将源文件编译成目标文件:gcc –c test.c -o test.o生成共享库:gcc –fPIC –shared –o libshared.so test.o原创 2017-01-13 12:14:49 · 288 阅读 · 0 评论 -
关于jeffy-vim-read.tar的使用问题
1. 首先tar xvf jeffy-vim-read.tar压缩包,然后执行./install.sh 进行安装2. 安装完后如果打开文件出现以下打印解决办法: 需要安装最新的vim,sudo apt-get install vim又出现如下依赖问题,需要先装下面这个依赖最后安装vim 成功,打开文件就会有行序号,高亮显示了...原创 2019-08-19 19:25:21 · 510 阅读 · 0 评论 -
ubuntu13.04 cmake3.8.1源码安装
1. 安装执行三步骤为./bootstrap && make && make install2. 在./bootstrap的时候会提示以下信息Error when bootstrapping CMake:Cannot find appropriate C++ compiler on this system.Please specify one usi...原创 2019-08-22 15:42:54 · 563 阅读 · 0 评论 -
互斥锁
pthread_mutex_t mutex; //定义互斥锁变量pthread_mutex_init(&mutex, NULL); //初始化互斥锁pthread_mutex_lock(&mutex); //获得互斥锁pthread_mutex_unlock(&mutex); //释放互斥锁互斥锁 并不是和具体变量关联,它本身就是一个独立的对象,进程线程原创 2015-03-26 11:41:39 · 247 阅读 · 0 评论 -
大小端的理解
小端 数据低位低地址大端 数据高位低地址 比如0x12345678 从左到右 0x12是高位,0x78是低位小端 低地址------>高地址 数据存储方式统一(char 0x78; short 0x5678; int 0x12345678) 0x78 0x56 0x34 0x12大端 低地址------>高地址原创 2015-03-26 11:59:51 · 334 阅读 · 0 评论 -
变量重名问题-引自大师兄的话
如果函数重名,链接时会报警那么,变量重名呢?答案是:不会报错。它们的sizeof,会遵循编译的结果,与它们各位的声明相同悲剧的是,它们的地址,却是相同的。 举例:a.c中内容如下:#include #include #include typedef struct{int a;int b;}str;str tem;void fun_原创 2015-04-07 14:12:24 · 615 阅读 · 0 评论 -
linux定义变量内存地址分配顺序
首先分配基本变量(分配顺序字节从小到大char->int,除char按照singed->unsigned区分,其余均不),地址从低地址-高地址分配。其次分配数组,地址从低地址-高地址。一定要注意字节对齐:一般为4字节。举例:int ab[10];//最后int m; //⑤char t; //①unsigned char ut;//②unsi原创 2016-12-30 16:34:54 · 1465 阅读 · 0 评论 -
关于字符数组的存储以及强制转换
字符数组在小端系统存储:低地址向高地址顺次存储str[0] => str[n]。举例:char *a = "uni";printf("%c %c %c\n", a[0], a[1], a[2]);printf("%d %d %d\n", a[0], a[1], a[2]);int *str = (int *)a;printf("%d %d %d %d\n", (原创 2016-12-30 15:12:28 · 445 阅读 · 0 评论 -
进制的计算
采用这样的循环:k为原始十进制数;n为进制;a[index]为记录数组,0为起始低位,index为高位;i为数组下标。while(k>0){a[i++]= k%n;//取余的过程k=k/n;//取商的过程}原创 2016-12-30 14:54:26 · 405 阅读 · 0 评论 -
随机数
#include #include #include #include /*纳秒级 随机性更强,远胜过time(0)*/struct timeval tpstart;gettimeofday(&tpstart,NULL);srand(tpstart.tv_usec);int rd = rand();原创 2016-12-12 10:23:20 · 286 阅读 · 0 评论 -
Source Insight出现parse too complex的问题
多半是因为代码中括号配对问题,检查代码。原创 2016-11-04 14:57:11 · 3637 阅读 · 0 评论 -
c代码实现--完整读取整个文件
完整读取整个文件-c代码实现原创 2016-10-11 14:54:54 · 1324 阅读 · 0 评论 -
popen ()简单用
popen ()的使用方法原创 2016-10-11 14:48:14 · 832 阅读 · 0 评论 -
strerror和errno的初见
strerror和errno的使用方法原创 2016-10-11 14:38:59 · 257 阅读 · 0 评论 -
使用memwatch跟踪内存泄露(一)
1. 在cmake或makefile中添加定义add_definitions(-g -DMEMWATCH -DMW_STDIO)2. 在代码中添加【memwatch.c 】和头文件 【memwatch.h】两个文件,并在cmake或makefile中添加编译SET(SRC memwatch.c //放在最前面吧......}3. 在所调用头文件.原创 2015-06-24 09:53:52 · 385 阅读 · 0 评论 -
关于gdb调试(一)
1. 对一个对端已经关闭的socket调用两次write, 第二次将会生成SIGPIPE信号, 该信号默认结束进程2. 为了避免进程退出, 可以捕获SIGPIPE信号, 或者忽略它, 给它设置SIG_IGN信号处理函数:signal(SIGPIPE, SIG_IGN);这样, 第二次调用write方法时, 会返回-1, 同时errno置为SIGPIPE. 程序便能知道对端已经转载 2015-06-24 09:48:34 · 360 阅读 · 0 评论 -
关于#define
1. 被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。作用范围仅限于当前文件。2. 在#define中,标准只定义了#和##两种操作。#用来把参数转换成字符串,##则用来连接前后两个参数,把它们变成一个字符串。#define print(n) printf("num"#n"=%d\n",num原创 2015-04-17 09:15:44 · 438 阅读 · 0 评论 -
关于线程优先级(一)
1. 举例pthread_attr_t attr;struct sched_param param;pthread_attr_init(&attr); //初始化一个线程对象的属性pthread_attr_setschedpolicy(&attr, SCHED_RR); //设置线程调度策略pthread_attr_getschedparam(&...原创 2019-08-19 19:26:48 · 212 阅读 · 0 评论