
linux: 开发相关
北雨南萍
长期专注于实时音视频通信技术、音视频处理技术,包括基于webrtc的音视频通信解决方案,基于ffmpeg的媒体处理解决方案。
展开
-
terminate called after throwing an instance of ‘std::regex_error‘解决办法
terminate called after throwing an instance of 'std::regex_error'解决办法原创 2023-11-27 14:27:37 · 1090 阅读 · 0 评论 -
Makefile通用模板
###EXECUTABLE:=11-8LIBDIR:=LIBS :=INCLUDES :=SRCDIR :=##CC := g++CFLAGS := -g -Wall -O3CPPFLAGS := $(CFLAGS)CPPFLAGS += $(addprefix -I, $(INCLUDES))CPPFLAGS += -MMD##RM-F := rm -f# # You shouldn't need to change anything below this poin原创 2021-11-15 11:56:20 · 892 阅读 · 0 评论 -
linux下 GDB 调试动态链接库
> gdb <你的可执行程序>(gdb) b main # 设置入口断点(gdb) r [可执行程序的命令行参数] # 启动调试(gdb) load <要调试的动态库, 如 test.so> # 将动态库加载入内存(gdb) dir <要调试的动态库的源码路径, 如 ./src>(gdb) sharedlibrary <要调试的动态库> # 将动态库的符号读入gdb,为了你能找到变量和函数名(gdb)...原创 2020-08-04 10:25:23 · 7711 阅读 · 0 评论 -
gtest应用指南
前言gtest是Google的开源C++单元测试框架,是遵循 New BSD License (可用作商业用途)的开源项目。google内部的大多数C++代码都已经使用这个测试框架进行单测,知名的使用gtest进行测试的项目有chromium , webrtc, quic等。gtest 可以支持绝大多数大家所熟知的平台。Gtest的使用较为方便,它可以自动记录下所有定义好...原创 2020-04-13 12:59:24 · 925 阅读 · 0 评论 -
【linux教程】rpm包制作指南
原文链接:http://blog.chinaunix.net/uid-233544-id-3169328.html本文系原创,转载或其它任何使用方法均需要得到作者授权!一、RPM简介Linux系统上的软件包管理器用于实现对系统上的安装的程序进行跟踪和管理,其中比较著名的有rpm,dpkg等。RPM的全称为RPM Package Manager(早期也叫做Red Hat Pa转载 2015-01-15 21:17:56 · 1629 阅读 · 0 评论 -
sqlite3出错
运行命令:$ sqlite3后出错提示:sqlite3 symbol lookup error sqlite3 undefined symbol sqlite3_sourceid是因为有两个版本的sqlite3,$ vim /etc/profile在最末行添加:PATH="/usr/bin:$PATH"保存退出、$ ldconfig或$原创 2015-01-19 22:21:59 · 1600 阅读 · 0 评论 -
linux安装GCC详解
目前,GCC可以用来编译C/C++、FORTRAN、JAVA、OBJC、ADA等语言的程序,可根据需要选择安装支持的语言。因项目要求,需要在Redhat Linux原本安装有GCC4.1.2的基础上,再安装GCC4.5.1。安装之前,系统中必须要有cc或者gcc等编译器,并且是可用的,或者用环境变量CC指定系统上的编译器。如果系统上没有编译器,不能安装源代码形式的GCC 4.5.1原创 2015-04-01 17:47:35 · 2579 阅读 · 0 评论 -
Makefile:2: missing separator. Stop.
Makefile:2: missing separator. Stop. 在make命令后出现这种错误提示,是提示第2行没有分隔符。例如:1 target:prerequisites2 command……改为:1 target:prerequisites2 command……就可以了。在Makefile文件中,命令必须以【tab】键开始。原创 2015-06-02 19:34:20 · 14463 阅读 · 0 评论 -
shmget报EEXIST错误
一、shmget(得到一个共享内存标识符或创建一个共享内存对象)1. 所需头文件#include #include 2. 函数说明得到一个共享内存标识符或创建一个共享内存对象并返回共享内存标识符3. 函数原型int shmget(key_t key, size_t size, int shmflg)4. 函数传入值key: 0(原创 2015-06-11 23:20:53 · 4053 阅读 · 0 评论 -
linux find grep组合使用
一、常用组合1. 查找所有".h"文件find /PATH -name "*.h"2. 查找所有".h"文件中的含有"helloworld"字符串的文件find /PATH -name "*.h" -exec grep -in "helloworld" {} \;find /PATH -name "*.h" | xargs grep -in "hel转载 2015-11-13 11:47:34 · 775 阅读 · 0 评论 -
Debian软件包构建
具体构建文档见:http://www.debian.org/doc/manuals/maint-guide/index.zh-cn.html原创 2016-02-02 15:23:16 · 734 阅读 · 0 评论 -
linux 搭建SVN服务器,为多个项目分别建立版本库并单独配置权限
1、安装svn服务 # yum install subversion 2、新建一个目录用于存储SVN所有文件 # mkdir /home/svn 3、在上面创建的文件夹中为项目 project_1 创建一个版本仓库 # svnadmin create /home/svn/project_1 执行完这一步,/home/s转载 2017-01-06 16:37:28 · 4536 阅读 · 2 评论 -
linux rpm命令参数使用详解
RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”rpm 执行安装包二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。常用命令组合:-ivh:安装显示安装进度--install转载 2015-01-16 14:56:52 · 936 阅读 · 0 评论 -
vim 在所有行前插入相同的内容
vim 在所有行前插入相同的内容将光标移到开始插入的位置,按 Ctrl + v 进入 VISUAL 模式,选择好模块按 I (shift + i) 后插入要插入的文本按 Esc 完成原创 2014-06-30 11:02:40 · 3547 阅读 · 0 评论 -
VIM: C程序员插件C.vim
作为一个程序员,在编码时你常常有如下的重复操作: 1. 给文件或者函数说明 2. 给函数添加注释,或者添加一个注释快 3. 添加一段已有代码 (:r !cat filename) 4. 检查代码语法 5. 读函数的帮助文档 6. 注释掉一块代码,将"//"转换为/* */ C.vim即C-Support vim,能够帮助C程序员[当然还有使用C++ 的转载 2014-06-30 11:07:03 · 1375 阅读 · 0 评论 -
《linux命令编辑器与shell编程》学习笔记 第4章 文件系统
$ls -F # 符号化标记目录$mkdir -p /dirA/dirB # 多级目录创建"~" # 表示用户主目录重要的标准目录:文件访问权限:$ls -l ,列出文件信息$chmod ,改变文件的访问权限,原创 2013-02-25 06:31:39 · 762 阅读 · 0 评论 -
GDB调试方法精粹
一、多线程调试1. 多线程调试,最重要的几个命令:info threads 查看当前进程的线程。 GDB会为每个线程分配一个ID, 后面操作线程的时候会用到这个ID. 前面有原创 2013-02-26 15:25:27 · 1254 阅读 · 0 评论 -
VIM图片式总结
LINUX原创 2013-02-25 06:53:44 · 998 阅读 · 0 评论 -
《linux命令编辑器与shell编程》学习笔记 第5章 shell
命令行的基本语法格式:command [arg1] [arg2]...[argn] RETURN参数都有编号,其中命令本身为参数0.shell只在PATH变量中定义的路径中查找命令,可以用下面的命令来添加PATH路径$PATH = $PATH:/xxx/yyy这个路径添加只对当前会话有效;也就是说,退出会话后,路径设置就失效了。或者:$vim /原创 2013-02-25 06:30:57 · 600 阅读 · 0 评论 -
"makefile:5: *** missing separator. Stop."
写makefile时出现这个错误提示是表示makefile中的命令前没有使用TAB。造成的原因可能有:1. 命令前没有使用TAB,2. 在VIM的配置文件"/etc/vimrc"中使用了"set expandtab".因为"set expandtab"会将TAB转换成空格原创 2013-02-25 06:22:37 · 8424 阅读 · 0 评论 -
VIM解决中文编码问题
虽然VIM自7.0之后对双字节的编码已经支持的很不错了,但是,还是需要一些配置才能完全实现的哦。要解决的问题:1.识别双字节编码格式需要先了解的知识:vim中的内置变量:enc(encoding):vim的内部编码fenc(fileencoding):vim解析出来的当前文件编码(有可能解析成错的哦)fencs(fileencodings):转载 2013-02-25 06:55:24 · 773 阅读 · 0 评论 -
《linux命令编辑器与shell编程》学习笔记 第1~3章
第二章 入门$ps 识别当前运行的是哪种shellctrl+z 挂起程序$jobs 得到程序对应的作业号$fg 作业号 把后台作业切换到前台继续运行$bg 挂起的作业号 将挂起的作业移到后台继续运行ctrl+c 终止当前程序$kil原创 2013-02-25 06:51:37 · 726 阅读 · 0 评论 -
errno的错误定义详解
以下来自linux 2.4.20-18的内核代码中的/usr/include/asm/errno.h#ifndef _I386_ERRNO_H#define _I386_ERRNO_H#define EPERM 1 /* Operation not permitted */#define ENOENT 2 /* No such file or di转载 2013-03-04 18:04:39 · 1081 阅读 · 0 评论 -
ctags详解
ctags简介ctags(Generate tag files for source code)是vim下方便代码阅读的工具。尽管ctags也可以支持其它编辑器,但是它正式支持的只有VIM。并且VIM中已经默认安装了Ctags,它可以帮助程序员很容易地浏览源代码。ctags 最先是用来生成C代码的tags文件,后来扩展成可以生成各类语言的tags, 有些语言也有专有的tags生转载 2013-08-08 09:16:01 · 2101 阅读 · 0 评论 -
《linux命令编辑器与shell编程》学习笔记 第8章 bash
在linux系统下,sh是bash的符号链接。shell有三种运行方式:登录shell,非登录的交互式shell --如通过shell命令,非登录的非交互式shell --如通过执行shell脚本.1. 登录shell登录shell带上--login选项,首先执行/etc/profile #通过设置这个文件,超级用户可以为所有bash用户原创 2013-02-25 06:23:22 · 997 阅读 · 0 评论 -
用shc加密shell脚本
Shc可以用来对shell脚本进行加密,可以将shell脚本转换为一个可执行的二进制文件。经过shc对shell脚本进行加密后,会同时生成两种个新的文件,一个是加密后的可执行的二进制文件(文件名以.x结束),另一个是C语言的原文件(文件名以.x.c结束)。下面就说明一下shc的安装,参数,以及使用示例:一、下载安装:(官网下载地址: http://www.datsi.f转载 2014-06-25 11:07:04 · 1282 阅读 · 0 评论 -
shell编程: 获得目录下(包括子目录)所有文件名,路径和文件大小
要获得目录下(包括子目录)所有文件名,路径和文件大小用shell应该是最简便的shell脚本: lsdir.sh#!/bin/bashfunction ergodic(){ for file in `ls $1` do if [ -d $1"/"$file ] then ergodic $1"/"$file原创 2013-04-09 22:28:35 · 2519 阅读 · 0 评论