
linux
文章平均质量分 59
Markus.Zhao
这个作者很懒,什么都没留下…
展开
-
CMake编程实践(六) 模块使用和自定义模块
文章目录模块使用和自定义模块使用系统预定义的FindCURL模块编写自定义的UtilsBox模块编译执行小结模块使用和自定义模块cmake开发者在开发过程中认为纯粹依靠cmake本身提供的基本指令来管理工程是也一件非常复杂的事情,所以cmake设计成了可扩展的架构,可以通过编写一些通用的模块来扩展cmake, 系统中提供了其他各种模块,一般情况需要使用INCLUDE指令显式的调用,FIND_P...原创 2020-04-25 23:39:32 · 1263 阅读 · 0 评论 -
CMake编程实践(五) 编译静态库和动态库
使用Cmake 编译库本篇使用CMake编译一个动态库和静态库,并安装到系统中,对应的工程是cmake-utilsbox-lib编译静态库指定编译静态库,关键词为static,不添加关键字默认静态库add_library(utils ${LIB_SOURCE})在使用该库的工程中链接都刚才编译的库:target_link_libraries(${PROJECT_NAME} utils...原创 2020-04-25 23:33:28 · 7953 阅读 · 2 评论 -
CMake编程实践(四) 控制指令
文章目录控制指令IF指令基本语法 if-else-endif:基本语法:if-elseif-endif正则比较表达式数字比较表达式:按照字母序的排列进行比较:小括号优先计算WHILE指令FOREACH指令使用列表 FOREACH(loop_var arg1 arg2 ...)使用范围 FOREACH(loop_var RANGE total)使用范围和步进 FOREACH(loop_var RAN...原创 2020-04-25 23:30:56 · 381 阅读 · 0 评论 -
CMake编程实践(三) 常用变量和常用环境变量
文章目录常用变量和常用环境变量cmake 变量引用的方式:自定义变量的方式:cmake常用变量:1. CMAKE_BINARY_DIR2. CMAKE_SOURCE_DIR3. CMAKE_CURRENT_SOURCE_DIR4. CMAKE_CURRRENT_BINARY_DIR5. CMAKE_CURRENT_LIST_FILE6. CMAKE_CURRENT_LIST_LINE7. CMAK...原创 2020-04-25 23:29:01 · 1005 阅读 · 0 评论 -
CMake编程实践(二) 常用语法
文章目录CMake常用语法PROJECT 定义工程名称SET 定义变量MESSAGE 输出信息ADD_EXECUTABLE 定义可执行文件INCLUDE_DIRECTORIES 添加头文件路径LINK_DIRECTORIES 添加库的路径TARGET_LINK_LIBRARIES 为target添加共享库INSTALL 安装指令配置CMAKE环境变量ADD_DEFINITIONSADD_DEPEN...原创 2020-04-25 23:26:24 · 624 阅读 · 0 评论 -
CMake编程实践(一) 基础CMake工程入门
文章目录CMake简介CMake 是什么?CMake的工作流程环境要求分析一个简单的CMake工程基本语法规则:编译安装编译生成的应用在哪里?安装到哪里?安装那些内容?CMake简介CMake 是什么?CMake是一个开源的跨平台工具系列,旨在构建,测试和打包软件。CMake用于使用简单的平台和独立于编译器的配置文件来控制软件编译过程,并生成可在您选择的编译器环境中使用的本机makefile...原创 2020-04-25 23:21:33 · 1058 阅读 · 0 评论 -
vscode中配置或添加头文件路径
vscode中配置或添加头文件路径在vscode中按Ctrl+Shift+P 输入configuration 在c_cpp_properties.json中includePath字段中添加待添加的SDK或者库的头文件路径 例:"/usr/local/xxx/include/"{ "configurations": [ { "name": "Li...原创 2020-04-06 15:58:49 · 44043 阅读 · 2 评论 -
gnuplot绘图教程(一)
目录1 gnuplot简介1.1 gnuplot安装(ubuntu)1.2 测试是否安装成功1 gnuplot简介gnuplot 是一个小巧实用的数据处理工具,主要用来绘制2D/3D的数据或者函数图像,但是也包含数学计算、拟合等功能。虽然它的名字里有个 “gnu”,但是它和大名鼎鼎的 GNU 没什么关系,使用的授权协议也不是 GNU GPL,所以这里的 “gnu” 是小写,全名应该读作 “ne...原创 2020-03-21 11:09:37 · 2393 阅读 · 0 评论 -
shell判断文件结尾是否有回车符
tail -n1 <your file> | wc -l输出为1表示有换行, 输出为0无换行e.g :if [ $(tail -n1 <your file> | wc -l) -eq 1 ];then echo "The file line End "fi原创 2020-01-12 00:46:02 · 4714 阅读 · 1 评论 -
Shell Programming in Unix, Linux and OS X, 4th Edition 笔记
文章目录Shell Programming in Unix, Linux and OS X, 4th Edition 读书笔记,随缘更新~shell脚本中的单引号和双引号以及反引号详解loading…原创 2020-01-12 00:27:46 · 298 阅读 · 0 评论 -
[笔记] shell脚本中的单引号和双引号以及反引号详解
文章目录引用单引号'双引号"反斜线\反引号`引用在第五章中讲到shell中的引用,shell能识别到4种不同的引用字符:单引号’双引号"反斜线\反引号`前两种和最后一种必须成对出现,而反斜线可以在命令中根据需要多次出现,这些引用字符在shell中的含义和功能各不相同。单引号’shell碰到第一个’,在遇到用于封闭的’之前,shell会忽略单引号对中引用的所有特殊字符,即不再解...原创 2020-01-12 00:20:02 · 1848 阅读 · 0 评论 -
Valgrind检测内存泄漏
概述任何长期运行的应用程序都必须正确地管理内存,否则它最终会耗尽所有可用内存并崩溃,如果你使用的是自动为你管理内存的语言,那么祝贺你,如果你用C/C++则需要你负责内存管理,这里有一个valgrind的简短教程,这个工具将对你的程序的任何内存泄漏出具报告。Valgrind是用于构建动态分析工具的仪器框架。有Valgrind工具可以自动检测许多内存管理和线程错误,并详细描述程序。您也可以使用Va...原创 2019-12-30 23:41:52 · 1237 阅读 · 0 评论 -
各国语言缩写以及国际域名缩写
文章目录各国语言缩写国际域名缩写各国语言缩写en 英文en_US 英文 (美国)ar 阿拉伯文ar_AE 阿拉伯文 (阿拉伯联合酋长国)ar_BH 阿拉伯文 (巴林)ar_DZ 阿拉伯文 (阿尔及利亚)ar_EG 阿拉伯文 (埃及)ar_IQ 阿拉伯文 (伊拉克)ar_JO 阿拉伯文 (约旦)ar_KW 阿拉伯文 (科威特)ar_LB 阿拉伯文 (黎巴嫩)ar_LY 阿拉...原创 2019-11-28 23:48:26 · 2411 阅读 · 0 评论 -
VSCode: PlatformIO IntelliSense Index Rebuild 解决
概述在vscode中打开platformio时,PIO Home一直处于加载状态 主页上一直显示loading在左下方的状态栏中提示PlatformIO IntelliSense Index Rebuild 任务一直在运行环境:ubuntu16.04vscode 并无自动更新过PlatformIO IDE插件版本1.9.0初步怀疑是PlatformIO IDE插件自动升级造成的,和p...原创 2019-10-16 23:14:58 · 8867 阅读 · 6 评论 -
Linux系统下查看指定命令的安装位置
概述在linux命令行中运行各种命令时,会遇到需要配置或者卸载该命令的情况,这时候就需要找到这个命令存放的目录解决1.which + 命令会出现这个命令的路径,如果不是软链接的话,这就是此软件的安装路径;如果是软连接的话,那么下一步$ which echo/bin/echo2.进入上面的路径下,输入:ls -al 要查找的命令会显示它的真实安装路径。...原创 2019-10-13 00:04:37 · 679 阅读 · 0 评论 -
Base64编码中有回车换行符
概述RFC2045[https://www.ietf.org/rfc/rfc2045.txt]中有规定:The encoded output stream must be represented in lines of no more than 76 characters each.Base64一行超过76字符后会自动添加回车换行符。当编码一个长字符串时,会出现每隔76个字符添加一个回...原创 2019-10-12 23:50:03 · 4665 阅读 · 1 评论 -
获取网卡Mac地址(grep、正则表达式)
文章目录在命令行或者脚本中获取指定网卡的mac地址方法1方法2在命令行或者脚本中获取指定网卡的mac地址方法1ifconfig |grep HWaddr |head -n 1 | grep -o "[a-f0-9A-F]\\([a-f0-9A-F]\\:[a-f0-9A-F]\\)\\{5\\}[a-f0-9A-F]"输出如下:AA:BB:CC:DD:EE:FF方法2ifcon...原创 2019-08-27 22:49:41 · 1713 阅读 · 0 评论 -
linux下iwconfig命令参数
文章目录iwconfig用法说明参数essidnwidnickmodefreq/channelaprate/bittxpowersensretryrtsfragkey/enc[ryption]powercommit设置ath1无线网卡的channel 为11设置模式:通过MAC 设置AP:连接到WEP on 的AP:断开WEP:查看IP:设置IP:把IP: 192.168.100.123 , ne...原创 2019-08-27 22:40:26 · 1742 阅读 · 0 评论 -
C++ lock_guard 自动释放锁
概述根据对象的析构函数自动调用的原理,c++11推出了std::lock_guard自动释放锁,其原理是:声明一个局部的lock_guard对象,在其构造函数中进行加锁,在其析构函数中进行解锁。最终的结果就是:在定义该局部对象的时候加锁(调用构造函数),出了该对象作用域的时候解锁(调用析构函数)。使用方法首先需要包含mutex头文件然后创建一个锁 std::mutex mutex在需要...原创 2019-07-22 12:53:12 · 4157 阅读 · 0 评论 -
Linux多线程之基本编程
线程概念线程是指运行中的程序的调度单位。一个线程指的是进程中一个单一顺序的控制流,也被称为轻量级线程。它是系统独立调度和分配的基本单位。同一进程中的多个线程将共享该系统中的全部系统资源,比如文件描述符和信号处理等。一个进程可以有很多线程,每个线程并行执行不同的任务。和进程相比,它是一种非常“节俭”的多任务操作方式。在Linux系统中,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护原创 2018-05-07 19:52:37 · 325 阅读 · 0 评论 -
Linux多线程之互斥锁
互斥锁由于线程共享进程的资源和地址空间,因此在对这些资源进行操作时,必须考虑到线程间资源访问的同步与互斥问题。这里主要介绍 POSIX 中两种线程同步机制,分别为互斥锁和信号量。这两个同步机制可以互相通过调用对方来实现,但互斥锁更适合用于同时可用的资源是惟一的情况;信号量更适合用于同时可用的资源为多个的情况。互斥锁是用一种简单的加锁方法来控制对共享资源的原子操作。原创 2018-05-07 19:54:18 · 2631 阅读 · 0 评论 -
Java 线程池
继续上次读取外部存储器中文件数量的任务,上次采用Callable、Future及FutureTask实现,并没有限制线程的数量,由于创建了大量的生命周期很短暂的线程,造成过度占用系统资源,效率非常低下,在我的Android手机上获取文件数量这一任务大概要执行40s左右。简直不可忍受,这次采用线程池来实现。原创 2018-05-07 21:02:03 · 175 阅读 · 0 评论 -
vsftp服务器报“550 Permission denied”以及“530 Login incorrect”错误的解决办法
今天上传文件到ubuntu云服务器中,突然报550的错误代码,之前遇到过报530的错误,一番搜索,成功解决。这里将这两个错误解决办法整理了下,方便以后查看。550 Permission denied 错误方案A: 解决:修改/etc/vsftpd.conf 将“write_enable=YES”前面的#取消。 还需要注意的是:上传到指定的文件夹(例如Downloads),是否...原创 2018-05-15 19:11:24 · 3816 阅读 · 0 评论 -
Ubuntu 设置开机启动命令/脚本
ubuntu 设置rc.local开机启动命令/脚本的方法 一般有两种方法: 一、rc.local脚本rc.local脚本是一个Ubuntu开机后会自动执行的脚本,我们可以在该脚本内添加命令行指令。该脚本位于/etc/路径下,需要root权限才能修改。 注意:rc.local脚本里面启动的用户默认为root权限。 命令或脚本需要添加在exit 0之前 例如在rc.local中添加...原创 2018-07-28 10:14:31 · 14440 阅读 · 1 评论 -
linux 查看文件树结构
tree安装:在linux下使用tree命令可以方便的查看指定目录下的文件树结构,但有些系统并未安装该命令,需要手动安装一下,下面以在Ubuntu的安装为例,其他linux系统类似。在ubuntu下安装: 在接网络的情况下,在命令行中输入以下命令安装tree:sudo apt-get install tree使用方法及参数: tree -d -L 1 注: ...原创 2018-09-14 08:56:33 · 7776 阅读 · 0 评论 -
Ubuntu16.04安装网易云音乐
Ubuntu16.04安装网易云音乐下载安装安装完成下载https://music.163.com/#/download点击ubuntu16.04 下载如下安装包:netease-cloud-music_1.1.0_amd64_ubuntu.deb安装sudo dpkg -i netease-cloud-music_1.1.0_amd64_ubuntu.deb可能会出现如下报错...原创 2018-11-16 13:06:23 · 940 阅读 · 0 评论 -
Ubuntu挂载Win10下的NTFS硬盘出错的解决方案
概述在Ubuntu下打开Win10的NTFS硬盘总是提示出错了,而且是全部的NTFS盘都出错,其中sdb1错误显示如下:he disk contains an unclean file system (0, 0).Metadata kept in Windows cache, refused to mount.Failed to mount '/dev/sdb1': 不允许的操作The ...原创 2018-11-20 14:16:11 · 4227 阅读 · 3 评论 -
ubuntu16.04下安装为知笔记
概述一直在用微软的OneNote,这大概是地表最强的笔记软件了。但在Ubuntu上无法使用OneNote,虽然可以在浏览器内使用OneNote的云笔记,但由于众所周知的原因,在国内很不稳定。所以需要找一个跨平台,简单易用的笔记软件来替补OneNote。最终选择为知笔记,这是目前在linux平台上,使用非常广的一款笔记软件。安装方案一:使用软件包安装sudo add-apt-reposito...原创 2018-12-07 12:32:53 · 2657 阅读 · 1 评论 -
ubuntu16.04安装android-studio
windows下安装Android studio在前面的博客中有记录,这次记录在ubuntu下安装Android studio,虽然操作系统不同,但不同系统的Android studio实际使用上几乎是一样的。JDK java8 安装使用如下三条命令,安装JDKsudo add-apt-repository ppa:webupd8team/java sudo apt-get update ...原创 2018-12-07 13:27:45 · 7250 阅读 · 0 评论 -
Ubuntu 串口调试工具cutecom
cutecom是个拥有可视化界面的串口调试助手。1.安装cutecomsudo apt-get install cutecom2.运行cutecomsudo cutecom3. 插入串口后,使用以下命令查看串口驱动信息:dmesg | grep usb在cutecom的Device下拉菜单是没有ttyUSB0的,需要手动输入即可。最后点击Open device即可查看串口数据...原创 2018-12-07 13:54:14 · 2088 阅读 · 0 评论 -
C/C++ 开发利器 CLion安装与配置
概述CLion是Jetbrains公司旗下新推出的一款专为开发C/C++所设计的跨平台IDE,它是以IntelliJ为基础设计的,同时还包含了许多智能功能来提高开发人员的生产力,提高开发人员的工作效率。这个强大的IDE不仅可以帮助开发人员在Linux、OS X和Windows上来开发C/C++,同时它还使用智能编辑器来提高代码质量、自动代码重构并且深度整合CMake编译系统,从而提高开发人员的工...原创 2019-04-14 22:28:35 · 12364 阅读 · 1 评论 -
在Mac平台下使用tar压缩生成 "._" 文件的解决办法
概述最近在Mac平台下压缩文件夹时,然后在Linux平台解压后,发现每一个文件都多了一份 ._ 开头的文件副本,例如,我们的正常文件里面是这样的:files | 001.txt | 002.txt | 003.txt在 Mac 平台下使用如下命令对其进行压缩:tar -zcvf files.tar.gz files然后把 files.tar.gz 复制到Linux系统中,...原创 2019-05-26 23:28:47 · 6152 阅读 · 0 评论 -
vscode 优化.vscode/ipch(解决格式化失效以及占用存储空间大的问题)
概述使用vscode打开一个文件夹,然后随便编辑几个C++代码文件,跳转几个函数,然后就能看到在该文件目录下生成了一个.vscode的文件夹然后进入到.vscode文件夹后,继续进入ipch文件夹随便打开一个文件夹可以看到每个缓存目录中缓存文件大小为2M解决占用存储空间大ipch文件夹内包含缓存的预编译头文件(PCH),vscode使用的时间越长,那么这个文件夹内的缓存就越...原创 2019-05-27 00:07:40 · 7726 阅读 · 1 评论 -
VSCode CMake 安装与配置详解
概述在windows上使用cmake编译C/C++程序时,首先需要CMake,安装gcc/g++编译环境,然后使用VSCode 以及配置下CMakelist.txt。所需工具:VSCode (需要安装以下插件)C/C++C++ IntellisenseCMakeCMake toolsCMake Tools HelperCMakeMinGW安装CMake下载链接:...原创 2019-06-25 00:35:28 · 81599 阅读 · 30 评论 -
嵌入式学习之路
工作之后接触学习了WPF、Android、IOS相关的应用开发。目前主要做Android开发,以后的博客也会穿插记录一些工作上遇到的问题和解决方案。原创 2018-05-07 19:46:05 · 226 阅读 · 0 评论