Linux
文章平均质量分 65
Easadon
The one who can beat me is only me.
展开
-
ubuntu 16.04 安装openjdk1.7
编译安卓5.0源码需要openjdk1.7版本,ubuntu 16.04自带的openjdk为1.8或1.9说到安装,第一反应就是sudo apt-getinstallopenjdk-7-jdk那么恭喜你,喜提报错一个如何解决?娓娓道来sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-get install openjdk-7-jdk 选择正确版本su...原创 2020-12-10 11:16:30 · 571 阅读 · 1 评论 -
OpenCV学习--读取视频,保存为灰度视频
先上DJ 先上DJ先上代码#include <opencv2/opencv.hpp>#include <iostream>using namespace std;using namespace cv;int main(int, char **){ Mat in_frame, out_frame; const char win1[]="Grabbing...", win2[]="Recording..."; double fps=30;//每秒的帧数 ..原创 2020-08-20 17:39:48 · 2039 阅读 · 0 评论 -
Linux下统计程序、函数、代码运行时间
这阵子在做项目,需要从内核态获取数据,但是感觉读取的很慢,所以就想看看进行一次系统调用需要多少时间这时候需要输出一下程序的运行时间或者某一行代码的具体运行时间,看下是不是在系统调用上花了很多时间1. 统计整个程序的运行时间,可以用time命令#time ./testreal 0m2.913suser 0m0.012ssys 0m0.508s使用time命令,后面接可执行程序,便会显示所需时间2.使用clock()进行统计#include<s.原创 2020-08-06 15:32:28 · 2485 阅读 · 0 评论 -
C语言制作编译动态链接库
最近做项目的时候,需要跟人工智能组对接应用接口,要把写好的C函数给Python代码调用,所以打算把写好的代码制作成动态库,给他们直接import,随手记录一点相关知识1.概念程序的函数库一般就是:静态函数库、共享函数库以及动态加载函数库函数库一般来说编译集成了一系列我们要使用的接口(函数),程序源代码编译完成之后有一个链接环节,会通过链接器与使用到的函数库进行链接。静态函数库的话,事实上就是在程序在链接时整个库会一起编译进目标文件中,而动态函数库则不会,只是编译进去一个链接(符号),这种有点原创 2020-07-29 15:02:54 · 1231 阅读 · 0 评论 -
生产者消费者问题-基于linux和RT-Thread
生产者和消费者问题,又称缓存绑定问题、有限缓存问题。是一个经典的多线程同步问题描述了共享固定大小缓冲区的两个线程(生产者线程和消费者线程)在实际运行中会遇到的问题。生产者线程产生一定量的数据放到缓冲区,消费者线程消耗生产者所产生的数据。问题核心:(1)生产者在缓冲区满的时候不会加入数据;(2)消费者在缓冲区空的时候不会消耗数据;问题分析:(1)互斥访问:缓冲区是临界资源,一...原创 2019-08-23 18:08:32 · 195 阅读 · 0 评论 -
交叉编译工具链 【转】
本文转自https://www.veryarm.com/296.html一般来说我们常用的arm-linux-gcc 是 arm-none-linux-gnueabi 的一个软链接命名规则交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi]arch- 体系架构,如ARM,MIPS vendor- 工具链提供商 os- 目标操...转载 2019-07-22 15:15:13 · 466 阅读 · 0 评论 -
linux (ubuntu) 下搭建BOA服务器
1.下载源码并解压下载源码:www.boa.org2.进入src目录,执行./configure 生成Makefile3.修改defines.h文件,修改内容为:4.修改boa.c文件,如下5.修改 compat.h6.执行make 生成可执行程序编译过程可能报错:问题1:解决方法:安装bison :sudo apt-get inst...原创 2019-05-22 15:33:36 · 921 阅读 · 8 评论 -
Linux设备驱动开发 -- 基础知识【一】
实现一个嵌入式Linux设备驱动程序的大致流程如下:查看原理图,理解相应设备的工作原理。 定义主设备号。主设备号唯一标识了设备类型,即驱动程序类型。 编写驱动程序初始化函数和退出函数,实现驱动的注册和卸载。驱动程序的初始化在init()中完成,包括对硬件初始化,中断函数,向内核注册驱动程序等等。在关闭设备时需要有清除函数,在exit()函数中通过调用unregister函数实现。 设计所...原创 2019-05-10 14:40:05 · 282 阅读 · 0 评论 -
C语言实现文件内容的复制(不带参数的cp命令)
C 语言实现cp命令(不带参数的):即实现一个文件的复制代码实现:#include<stdio.h>#include<stdlib.h>#include<unistd.h> // write 's headfile/*open 's headfile */#include<sys/types.h>#include<sys/s...原创 2019-04-17 15:31:15 · 550 阅读 · 0 评论 -
C语言编写 linux 下的 touch 命令
用C语言实现linux 下 touch 命令的操作:touch:创建文件或者修改文件或目录的时间戳。实现效果:可添加三个参数:-c : --no-create do not create any files 不创建不存在的文件-a : change only the access time 只修改文件的访问时间-m : change only th...原创 2019-04-15 22:48:27 · 3004 阅读 · 0 评论 -
linux下守护进程
在linux或者unix操作系统中在系统引导的时候会开启很多服务,这些服务就叫做守护进程。root可以选择系统开启的模式,这些模式叫做运行级别,每一种运行级别以一定的方式配置系统。 守护进程是脱离于终端并且在后台运行的进程。守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会被任何终端所产生的终端信息所打断。守护进程(Daemon)是一种运行在后台的一种特殊的进...原创 2019-04-15 20:06:36 · 130 阅读 · 0 评论 -
shell编程学习以及样例
1.for循环#语法一for 变量 in 值1 值2 值3.. do 程序块儿 done##语法二for 变量 `命令` #注意这里的符号,不是'',而是`` do 程序块儿 done##语法三for ((初始值; 循环控制; 变量变化)) do 程序块儿 done实例:依次向某个目录中的每个文件或子目录问好,形如: ...原创 2019-02-09 23:05:49 · 119 阅读 · 0 评论 -
关于Linux下的Makefile的理解
1.什么是 Makefile一个企业级项目,通常会有很多源文件,有时也会按功能、类型、模块分门别类的放在不同的目录中,有时候也会在一个目录里存放了多个程序的源代码。由于,makefile关系到了整个工程的编译规则。Makefle就是针对如何对上述的一些代码进行编译的问题而生的,它定义了一套规则,决定了哪些文件要先编译,哪些文件后编译,哪些文件要重新编译。Makefile 的优点就是可以实现...转载 2019-02-03 23:23:56 · 914 阅读 · 0 评论 -
Linux下Qt关于qmake的小问题
1.下载之后显示没有安装qmake输入以下指令:sudo apt-get install qt5-default qt5-doc-html qt5-qmake qt5-doc qt5-image-formats-plugins上述操作之后可以完成qmake的安装2.显示QApplication: No such file or directory 问题均可解决...原创 2019-01-15 11:57:31 · 2256 阅读 · 0 评论 -
linux装SQLite
一般的linux可能会自带sqlite,所以在安装之前,我们可以先检测一下。可先使用sqlite3命令检测是否系统已经装好了,若显示并未安装,则进行下述操作先到 https://www.sqlite.org/download.html 网站下载sqlite-autoconf-*.tar.gz压缩包下载完了,把压缩包放进Linux系统中 我放在Ubuntu的桌面,然后...原创 2018-10-09 20:10:55 · 6331 阅读 · 2 评论 -
Linux环境下载命令
1.wgetwget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。"wget" 这个名称来源于 "World Wide Web" 与 "get" 的结合。所谓自动下载,是指 wget 可以在用户退出系统的之后在继续后台执行,直到下载任务完成。2.yumYum(全称为 Yellow dog...原创 2018-08-24 22:50:14 · 4521 阅读 · 0 评论 -
Linux的shell编程
1.引号的使用将一个$变量表达式放在双引号中,程序执行到这一行会把变量替换为它的值;放在单引号中,不会替换。字符串通常放在双引号中,防止变量被空白字符分开,同时也允许$扩展。一个简单的交互式shell脚本#!/bin/bashecho "Is it ok?please answer 0 or 1"read ansif [ $ans = 0 ]then echo...原创 2018-08-07 22:28:13 · 137 阅读 · 0 评论 -
Linux多线程数据处理
和进程相比,线程的最大优点之一是数据的共享性高。但是在应用的过程中,我们必须当心有多个不同的进程访问相同的变量。许多函数是不可重入的,即同时不能运行一个函数的多个拷贝(除非使用不同的数据段)。为了保护变量,我们必须使用信号量、互斥等方法来保证我们对变量的正确使用。´1)线程数据在单线程的程序里,有两种基本的数据:全局变量和局部变量。但在多线程程序里,还有第三种数据类型:线程数据(TSD: ...原创 2018-08-04 23:07:31 · 1151 阅读 · 0 评论 -
Linux 下的C++多线程的几个基本函数
开头引入头文件 :#include<pthread.h> pthread_t(用于声明线程标识符的变量) eg: pthread_t tid;´pthread_t在头文件/usr/include/bits/pthreadtypes.h中定义: typedef unsigned long int pthread_t; 它是一个线程的标识符。pthread_cr...原创 2018-08-04 21:02:48 · 815 阅读 · 0 评论