rust小记
Spike的博客,堂堂回归
antlr4-C++学习笔记(基本操作)
基本概念ANTLR是一个可以根据用户定义的文法自动生成词法和语法分析器的工具,并且支持多种语言(默认java,其他语言需要另行配置)
LInux下安装和配置进入/usr/local/lib目录下
12cd /usr/local/libcurl -O https://www.antlr.org/download/antlr-4.9-complete.jar
之后将其加入到环境变量中
1export CLASSPATH=".:/usr/local/lib/antlr-4.9-complete.jar:$CLASSPATH"
但是这个名字太长了,为了方便使用,可以设置别名
12alias antlr4='java -jar /usr/local/lib/antlr-4.9.2-complete.jar'alias grun='java org.antlr.v4.gui.TestRig'
配置C++环境(需要安装cmake,uuid-dev,pkg-config)由于课程设计要求,所以需要ANTLR4生成C++的代码,要额外的配 ...
Cmake教程(持续更新)
Cmake常见命令CMake的常用变量和函数先将这些函数和变量罗列出来,便于之后查找
变量
Variable
Info
CMAKE_SOURCE_DIR
根源代码目录,工程顶层目录。暂认为就是PROJECT_SOURCE_DIR
CMAKE_CURRENT_SOURCE_DIR
当前处理的 CMakeLists.txt 所在的路径
CMAKE_SOURCE_DIR, PROJECT_SOURCE_DIR, <projectname>_SOURCE_DIR
工程顶层目录
CMAKE_BINARY_DIR
运行cmake的目录。外部构建时就是build目录
CMAKE_CURRENT_BINARY_DIR
The build directory you are currently in.当前所在build目录
PROJECT_BINARY_DIR
暂认为就是CMAKE_BINARY_DIR
EXECUTABLE_OUTPUT_PATH , LIBRARY_OUTPUT_PATH
最终目标文件存放的路径。
PROJECT_NAME
通过 PR ...
Docker知识总结以及遇到的问题汇总(持续更新)
报错错误1: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?常见的解决方法csdn上都有,但是还有可能是一些阴间的原因
如果csdn上的方法都没用的话,可以检查下/etc/docker/key.json文件是否正确,问题包括但不限于:
缺少花括号等语法错误
出现了错误的键值对,有冗余内容
正确的格式应当类似如下内容:
12345678{ "crv":"P-256", "d":"36XGfrRv-_lPluKctIHib1cBUu9qFB3sfKkJEwJ13c0", "kid":"ZL2W:IAUT:PCS5:E22Q:2AWK:CBCR:KLQF:7MEK:KJHO:2WNE:GNO4:L72A", "kty":"EC", "x":"39 ...
Pthread线程库部分函数
线程库同步线程父线程必须等到子线程结束才能恢复执行,也被称为fork-join strategy
异步线程创建好子线程后父线程就继续执行,父子线程是并发执行
Pthread1int pthread_create(pthread_t *tidp, const pthread_attr_t *attr,( void *)(*start_rtn)( void *), void *arg);
编译链接参数:-lpthread
第一个参数为指向线程 标识符的 指针。第二个参数用来设置线程属性。第三个参数是线程运行函数的起始地址。最后一个参数是运行函数的参数。
1234567891011121314pthread_t tid //无符号长整型,线程标识符pthread_attr_t attr; //线程属性的集合,是一个结构体,详细定义如下:typedef struct { int detachstate; //线程的分离状态 int schedpolicy; //线程调度 ...
POSIX共享内存实例
POSIX 共享内存主要调用以下api
shm_open1int shm_open(const char *name,int oflag,mode_t mode)
需要以下头文件
123#include <sys/mman.h>#include <sys/stat.h> /* 对于模式常量 */#include <fcntl.h> /* 对于 oflag 常量 */
该函数会打开或创建一个共享内存对象,通常保存在/dev/shm/路径下,实质上就是一个文件,linux认为所有的对象都是文件,可以使用文件操作函数,
返回值为文件描述符fd,成功时为正数,失败时为负数
各参数含义:
name:文件名,不能填写路径
oflag:位掩码,表示文件操作属性
O_RDONLY 只读
O_RDWR 读写
O_CREAT 若文件不存在,则创建
O_EXCL 在指定O_CREAT的情况下若文件已存在,则返回错误
mode: 表示文件的共享模式,应在指定O_CREAT的情况下使用,即创建文件后的用 ...
CMake-VSCode编译运行C++程序简单教程
前言本教程旨在帮助不想使用vs,但是又想使用VScode的调试功能而不想手动编译的人,只能最低限度满足要求,很多地方还不完善,如不支持源代码在不同文件夹下编译,不包含CMake语法的教程,需要进阶操作请自行搜索CMake语法,
环境安装安装和配置MinGw
MinGw中包含gcc,g++等多种编译器,可以在windows上使用(windows无法直接安装gcc),下载链接:https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-win32/seh/x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z/download
解压时尽量解压在某个盘的根目录。
将MinGW下bin目录的路径添加到环境变量中
进入bin文件夹,找到mingw32-make.exe,复制一份,将其中一份重命名为make.exe(还是保存在bin文件夹中)
验证是否配置成功,cmd中 ...
hexo github个人博客搭建
前言 一直很羡慕大佬室友的个人网站,在大佬推荐下决定用hexo框架也搭一个自己的博客,但是网上的教程都比较简略,在综合了好多教程以及自己百度了一些问题后才算是搭了起来。所以决定第一篇博客就写我的搭建过程,用来整理一下思路,还有可能以后有小伙伴想要搭建博客的时候我也可以帮上忙。(这篇其实很早就开始写了,但是由于拖延症和把yilia主题玩坏了才拖了这么久。)
前期环境的安装githunb创建个人仓库 因为我们的网站是托管在github上的,所以我们需要注册一个github账号,注册好后在左上角的Repositories(仓库)点击new创建新仓库,命名规则为 用户名.github.io 创建好后就可以了。
安装git并与GitHub绑定 简单地说,git就是一个管理代码的工具,同时也可以进行类似cmd的命令行操作(粗糙的个人理解),我们的网站在本地搭建好以后,需要使用GIT同步到GitHub上。下载链接 http://rogerdudler.github.io/git-guide/index.zh.html 同时附有简单的配置教程。安装好后需要将git与GitHub绑定,右击打开Gi ...