Windows下编译和使用websocketpp

2022-03-27
阅读 1 分钟
2.8k
编译安装BoostWebSocketpp依赖于Boost,因此在使用WebSocketpp前需要编译安装Boost。到 Boost C++ Libraries - Browse /boost-binaries at SourceForge.net 下载稳定版的进行编译。下载的压缩包解压后进入Boost文件夹中,运行bootstrap.bat脚本。脚本运行完成后会生成b2.exe,运行b2.exe就会开始编译,编译时间会比较长...

内化《高效信息管理术》

2022-03-20
阅读 2 分钟
1k
收集信息提升信息敏感度一个信息敏感度高的人,会觉得“世间万事皆学问”,从平常处总能发现可以借鉴、学习的知识。提升方法:突破固有的输入场景,打破局限,任何场景都是收集信息的场景。确定核心主题,不应对所有信息都敏感。聚焦主题,有所取舍。创立正在进行的项目,与主题相关,确保收集到的信息可快速实现价值。打...

打JAR包那些事

2022-03-06
阅读 1 分钟
1.8k
JAR包就是Java Archive File,是Java的一种文档格式。JAR包与ZIP文件非常类似——本质上来说,它就是ZIP文件。JAR文件与ZIP文件唯一的区别就是,在JAR文件中包含了一个META-INF/MANIFEST.MF,这个文件是在生成JAR文件的时候自动生成的。

vscode设置C++代码格式化(Clang-Format)

2022-03-06
阅读 7 分钟
9.8k
vscode中只要安装了C/C++扩展后,在C/C++源文件中右键就能看到格式化文档的选项,这样就能通过该选项或者其快捷键(Shift+Alt+F)来实现快速格式化代码。

ZLMediaKit编译与webrtc推拉流测试

2022-02-14
阅读 1 分钟
4.1k
OS版本:Ubuntu 20.04.2 LTSopenssl版本:OpenSSL 1.1.1fgcc版本:9.3.0cmake版本:3.16.3

Mac下编译WebRTC(Mac和iOS版本)

2021-12-25
阅读 4 分钟
6k
随着新冠疫情的影响,这两年音视频的需求呈爆发式增长。在音视频领域中,WebRTC可以说是一个绕不开宝库,包括了音视频采集、编解码、传输、渲染的全过程。本文主要记录下在Mac平台上编译WebRTC Mac和iOS版本的全过程。

Windows下编译WebRTC

2021-12-12
阅读 3 分钟
5k
随着新冠疫情的影响,这两年音视频的需求呈爆发式增长。在音视频领域中,WebRTC可以说是一个绕不开宝库,包括了音视频采集、编解码、传输、渲染的全过程。本文主要记录下在Windows平台上编译WebRTC的全过程。

Linux下编译WebRTC(Linux和Android版本)

2021-12-11
阅读 3 分钟
6.2k
随着新冠疫情的影响,这两年音视频的需求呈爆发式增长。在音视频领域中,WebRTC可以说是一个绕不开宝库,包括了音视频采集、编解码、传输、渲染的全过程。本文主要记录下在Linux平台上编译WebRTC Linux和Android版本的全过程。

《More Effective C++》技术篇——Reference counting(引用计数)

2021-12-08
阅读 4 分钟
1.1k
Reference counting这项技术,允许多个等值对象共享同一实值。此技术的发展有两种动机,第一是为了简化heap object周边的簿记工作。它可以消除“记录对象拥有权”的负荷,因为当对象运用了reference counting技术,它便拥有它自己。一旦不再有任何人使用它,它便会自动销毁自己。reference counting的第二个发展动机则只是...

解决QT程序异常中止,报错__acrt_first_block == header

2021-11-20
阅读 1 分钟
2.8k
在Windows下使用VS开发QT程序,如果使用了函数toStdString来将QString转换为std::string的时候,可能会发生崩溃,报错__acrt_first_block == header。

如何解决VS中QT的ui文件双击无法打开

2021-11-20
阅读 1 分钟
3.6k
最近在VS2017中开发QT的程序。在打开一个已存在的工程后,双击里面的ui文件没有反应。而在新建的工程中,双击ui文件时却能打开Qt Designer。后来发现通过重新添加ui文件的默认打开方式可以解决。解决步骤如下:

《More Effective C++》技术篇——要求(或禁止)对象产生于heap之中

2021-10-31
阅读 2 分钟
1k
要求对象产生于heap中,意思是需要阻止clients不得使用new以外的方法产生对象。比较好的方法就是将destructor定义为private,因为constructor的类型太多,所以仍然将constructor定义为public。然后定义一个pseudo destructor来调用真正的destructor。示例如下: {代码...}

《More Effective C++》技术篇——限制某个class所能产生的对象数量

2021-10-24
阅读 2 分钟
872
如下例,只要继承Counted template就可以限制class所能产生的对象数量,超过了设置的maxObjects就会抛出异常。 {代码...}

Windows通过ssh免密登录Ubuntu

2021-10-23
阅读 1 分钟
7.2k
生成Windows公钥 {代码...} 将Windows公钥上传到Ubuntu {代码...} 修改属性 {代码...} 修改Ubuntu的/etc/ssh/sshd_config {代码...} 重启ssh {代码...} 验证免密登录 {代码...}

《More Effective C++》技术篇——将constructor和non-member function虚化

2021-10-17
阅读 2 分钟
1k
有一种特别的virtual constructor——所谓virtual copy constructor——也被广泛地运用、virtual copy constructor会返回一个指针,指向其调用者(某对象)的一个新副本。基于这种行为,virtual copy constructor通常以copyself或cloneself命令,或者直接命名为clone。

音视频基础知识点

2021-10-07
阅读 1 分钟
1.3k
PCM:脉冲编码调制(Pulse Code Modulation)。通过采样、量化、编码将模拟信号转换为数字信号。根据奈奎斯特采样定理:为了不失真地恢复模拟信号,采样频率应该不小于模拟信号频谱中最高频率的2倍。

linux动态库搜索路径顺序

2021-10-05
阅读 1 分钟
1.7k
在linux中执行程序时,有时会遇到“error while loading shared libraries”这种错误,这是因为动态链接器ld无法找到程序启动需要的动态库。这时就需要设置动态库的搜索路径了。

Vim基本操作

2021-10-05
阅读 1 分钟
1.6k
简介Vim是Linux中一款常见的文本编辑器。本文将简单介绍一下Vim的基本使用方式。Vim编辑器有三种模式——命令模式、编辑模式、末行模式。三种模式的切换方式如下图:需要注意的是:编辑模式和末行模式之间不可直接切换。命令模式vim filename可直接新建文件,打开文件后默认进入命令模式。命令模式下可以移动光标或者进行...

linux目录、文件操作命令

2021-10-05
阅读 1 分钟
1.1k
命令基本格式命令格式:cmd [-options [parameter]] [file]cmd :命令名,如ls,cd等。[]:表示可省略内容。-option:选项,用于控制命令。格式有2种:-h、--help。parameter:给不同选项的设置的参数。file:执行命令的文件或目录。目录操作pwd:显示当前目录的绝对路径。cd:切换目录。 {代码...} ls:显示目录内容。常...

Linux中获取当前进程的绝对路径

2021-10-03
阅读 1 分钟
1.6k
通过readlink的方式获取。 {代码...}

Python中执行cmd

2021-09-25
阅读 2 分钟
12.1k
使用os.system()方法os.system用来执行cmd指令,在cmd输出的内容会直接在控制台输出,返回结果为0表示执行成功。示例代码: {代码...} PS:os.system()方法是简单粗暴的执行cmd指令,没有办法获取到cmd输出的内容。PPS:os.system()方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码,高...

Linux程序中集成breakpad

2021-09-06
阅读 3 分钟
3k
breakpad是google开发的一个跨平台C/C++ dump捕获开源库,崩溃文件使用微软的minidump格式存储,也支持发送这个dump文件到服务器,breakpad可以在程序崩溃时触发dump写入操作,也可以在没有触发dump时主动写dump文件。breakpad支持windows、linux、macos、android、ios等。目前已有Google Chrome, Firefox, Google Picas...

关于Linux的core dump那些事

2021-08-29
阅读 2 分钟
4.4k
在linux中,程序运行时出现异常崩溃,操作系统会将程序当时的内存状态、调用堆栈等信息保存在core文件中。这种行为就是core dump(核心转储)。core文件中一般会保存寄存器信息(包括程序指针、栈指针等)、内存管理信息、CPU和操作系统状态和以及函数调用堆栈等信息。所以,core文件对于开发人员是非常重要的,很多时候...

Shell脚本在当前终端添加环境变量的正确姿势

2021-08-22
阅读 1 分钟
6k
在Linux中我们经常需要设置一些环境变量,设置环境变量的方式有很多,有些是对当前用户有效的,有些是对所有用户有效的,有些是永久的。很多时候我们会有这样的需求,只要在当前终端中让设置的环境变量生效,这样退出该终端后不影响其他程序的运行。

linux环境变量设置

2021-08-22
阅读 1 分钟
3k
在Linux中我们经常需要设置一些环境变量,下面列举一些常见的环境变量设置方式。读取环境变量export :显示当前系统定义的所有环境变量echo $PATH :输出当前的PATH环境变量的值设置环境变量之当前终端:export PATHexport PATH=/you/bin/path:$PATHps:设置的环境变量中不要忘了加上原来的配置,即$PATH部分,避免覆盖...

Chromium headless模式开发的一切

2021-08-09
阅读 5 分钟
4.5k
获取和编译chromiumLinux:[链接]Windows:[链接]Mac:[链接]重要文档headless模式:[链接]Vscode配置:[链接]源码查看:[链接]GN构建参数:[链接]Linux安装依赖安装上依赖,不安装会有缺库等问题。 {代码...} 设置代理获取chromium代码git 设置代理: {代码...} 全局代理: {代码...} Boto代理设置: {代码...} 参考文...

centos7安装、升级、切换gcc

2021-08-08
阅读 2 分钟
7.9k
安装gcc {代码...} 升级gccx.x.xPS:不要用高版本gcc编译低版本gcc,可能会编译不过! {代码...} 查找所有gcc版本 {代码...} 切换gcc版本/usr/bin/中安装的是gcc-9.3.0。其他版本的gcc安装在/usr/local/gccx.x.x/中。 {代码...}

Linux脚本错误:没有那个文件或目录

2021-08-08
阅读 1 分钟
2.5k
linux下执行脚本的时候报错:没有那个文件或目录。ls看一下,是有文件的。原因:文件格式错误。首先,vim filename查看文件。然后用命令:set ff看文件格式。可看到dos或unix的字样,如果的确是dos格式的,需要改成unix的。通过命令:set ff=unix来修改,,然后保存退出后就可以运行了。

Python脚本监控Linux用户CPU使用率

2021-08-01
阅读 1 分钟
1.8k
实现功能:启动后自动运行,每秒打印一次用户CPU使用率,结束脚本时自动计算并打印平均值和最大值。 {代码...}

Linux命令后台运行

2021-07-17
阅读 1 分钟
2.2k
cmd & 实现让命令在后台运行。但不要将有用户交互的命令放到后台,这样命令会在后台等待用户输入。后台运行的命令也会将结果输出到控制台上,如果不需要的话,可以将其重定向到某个文件中。使用下面的命令可以将标准输出和错误输出都将被重定向到一个叫做cmd.out的文件中: {代码...}