![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LINUX
五山口老法师
腾讯后台开发工程师
展开
-
linux gcc编译错误:statically linked applications requires at runtime the shared libraries
statically linked applications requires at runtime the shared libraries from the glibc version used for linking。此错误是因为gcc编译选项中有static相关参数,此参数禁止gcc编译时使用动态库,即使-lXXXX也不行。此时,把此static选项去掉程序即可通过编译...原创 2021-03-29 19:41:14 · 5236 阅读 · 3 评论 -
链接静态库的顺序问题
在链接静态库时,如果多个静态库之间存在依赖关系,则有依赖关系的静态库之间存在顺序问题,这个在使用静态库时,需要注意,否则会报符号找不到问题,举例:libb.a依赖于是liba.a,而可执行文件test只直接依赖于libb.a,则链接选项应当为:-b -a,而不是-a -b,否则会报liba.a中的某些符号找不到.gcc -c a.car cr liba.a a.ogcc -c b.car cr libb.a b.o # 虽然libb.a使用到了liba.o中的一些函数,但并不会.原创 2020-11-12 17:27:51 · 711 阅读 · 0 评论 -
libtool安装
1,下载安装m4wget http://mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gz \&& tar -xzvf m4-1.4.13.tar.gz \&& cd m4-1.4.13 \&& ./configure –prefix=/usr/localmake && make install2,下载安装autoconfwgethttp://mirrors.kernel.org/g...原创 2020-11-12 16:11:25 · 2987 阅读 · 0 评论 -
shell:后台运行&;,日志重定向输出,nohup,grep命令
后台运行命令在命令行加上&,表示进程到后台执行,如 cmd &日志输出重定向命令,如 cmp > out.log &Linux默认定义两个变量:1和2;1表示标准输出2表示错误输出如 cmd 1>info.log 2>error.log &其中 cmp > out.log & 与 cmp 1> out.log & 是一样的如果想忽略某个输入,则输出到/dev/null设备即可如 cmd 1>info.lo原创 2020-11-10 19:33:03 · 910 阅读 · 0 评论 -
Shell脚本读取Redis键值对
给出一个极简的例子:#!/bin/bashkey='aaaaa'value=$(redis-cli -h 127.0.0.1 -p 6379 get ${key})echo ${value}其中第二行 redis-cli连接到Redis服务器之后执行get返回的是key对应的value值。使用 变量=$(命令)或者 变量=`命令` 将Shell输出值赋值给变量。然后可以使用value来处理逻辑注意的是,变量与等于号以及命令之间不要出现多余的空格。...原创 2020-07-29 01:25:16 · 2053 阅读 · 1 评论 -
redis:RDM连接阿里云redis服务器
先给结论:这几天踩了一个坑,redis在启动的时候,如果你对redis.conf进行了修改,则需要在重启redis时带上配置文件,否则redis不会对修改的redis生效,真是个坑货,就这里被坑了,以为会主动去加载配置。redis默认在没有设置密码且bind在127.0.0.1时开启了保护模式。因此需要手动修改配置文件,将bind 127.0.0.1 改为 #bind 12...原创 2019-10-19 11:31:00 · 1637 阅读 · 2 评论 -
Linux:shell脚本中实现变量自增的几种方式
#!/bin/sh#本脚本测试shell脚本中整型变量自增 加1的几种方法#定义整型变量a=1echo $a#第一种整型变量自增方式a=$(($a+1))echo $a#第二种整型变量自增方式a=$[$a+1]echo $a#第三种整型变量自增方式a=`expr $a + 1`echo $a#第四种整型变量自增方式let a++echo $a...原创 2019-09-15 21:15:00 · 6873 阅读 · 0 评论 -
Linux:Swap分区
Linux中Swap(即:交换分区),类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。方法1:使用独立的分区来实现1. lsblk 查看是否有可用的磁盘分区,使用fdsik划分磁盘分区2. fdisk /dev/sdc 创建后的分区为/dev/sdc2,注意使用t选项修改分区id为823. 创建sw...原创 2019-08-25 20:19:21 · 418 阅读 · 0 评论 -
gdb调试
gcc作为GNU开源的C编译工具,自带优化功能。可以针对当前代码进行一定程度的优化,在保证程序正确运行的基础之上,减少系统资源的占用。"-On"选项就是进行代码编译优化的!n是等级项,一般默认的是1,也即是“-O1”(一般直接写作“-O”)。"-On"选项中n的数值越大,优化的等级越高,同时也就意味着程序的运行速度越快。一般常用的等级是-O2.而gdb是gcc的调试工具,主要用于C/C...原创 2019-05-13 17:14:08 · 235 阅读 · 0 评论 -
Vim常用快捷键
1.删除某行、某些行dd:删除游标所在的一整行(常用)ndd:n为数字。删除光标所在的向下n行,例如20dd则是删除光标所在的向下20行d1G:删除光标所在到第一行的所有数据dG:删除光标所在到最后一行的所有数据d$:删除光标所在处,到该行的最后一个字符d0:那个是数字0,删除光标所在到该行的最前面的一个字符x,X:x向后删除一个字符(相当于[del]按键),X向前删除一个字符...原创 2019-05-16 09:26:22 · 220 阅读 · 0 评论 -
GCC : 什么是编译?什么是静态库?什么是动态库?怎么生成?优先级?
本文旨在让大家真正明白C程序如何运行、库文件的种类区别、如何生成、如何使用等!一、简介:gcc 最初是 "GNU C Compiler" 的简称,只是当作一个 C 语言的编译器,现在已经变成了 "GNU Compiler Collection",可以编译多种语言。常用的命令参数选项:二、编译的四个阶段:在使用 gcc 编译程序时,编译过程可以被细分为 4 个阶段:...原创 2019-05-11 12:01:53 · 1378 阅读 · 1 评论 -
常用Linux操作命令
前言玩过Linux的人都会知道,Linux中的命令的确是非常多,但是玩过Linux的人也从来不会因为Linux的命令如此之多而烦恼,因为我们只需要掌握我们最常用的命令就可以了。当然你也可以在使用时去找一下man,他会帮你解决不少的问题。然而每个人玩Linux的目的都不同,所以他们常用的命令也就差异非常大,而我主要是用Linux进行C/C++和shell程序编写的,所以常用到的命令可以就会跟一个...原创 2018-05-13 23:38:35 · 151 阅读 · 0 评论 -
Linux文件的权限[srwxr-xr-x]
一、UNIX下关于文件权限的表示方法和解析UNIX下关于文件权限的表示方法和解析 SUID 是 Set User ID, SGID 是 Set Group ID的意思。 UNIX下可以用ls -l 命令来看到文件的权限。用ls命令所得到的表示法的格式是类似这样的:-rwxr-xr-x 。下面解析一下格式所表示的意思。这种表示方法一共有十位: 9 8 7 6 5 4 3 2 1 0...原创 2018-07-28 09:37:30 · 12979 阅读 · 0 评论 -
Linux:nice函数
什么是nice函数?在我们的系统中,进程调度依赖于进程的优先级。如何获取或者设置优先级的值?这就是nice干的事情!顾名思义,nice嘛!就是你这个人(进程)越好说话越和善,你就多让着别人,处处让着别人,因此优先级就越低!因此:nice值越大,优先级就越低!怎么获取?怎么设置?#include<unistd.h >int nice(int incr); 参...原创 2018-09-27 20:12:50 · 1905 阅读 · 0 评论 -
Linux:信号
什么是信号,那么为什么有信号,信号是谁发送给谁的呢,怎么发送?答案很简单,想想我们在日常生活中也有很多信号,比如常见的红绿灯信号。所以linux中的信号也是类似的。它无非是想提供一个机制在需要的时候告诉某个进程该怎样做。是一种规定,便于系统操作。就像我们都知道”红灯停,绿灯行“一样。信号的发送者有很多,比如终端驱动程序,进程,系统。而接收者大多是一个进程。、看下面这一篇足矣!lin...原创 2018-09-27 21:19:20 · 183 阅读 · 0 评论 -
UBUNTU下gedit编辑器出现中文乱码现象
最直接的方法:用dconf-editor进行查看一下。终端输入dconf-editor命令,找到:ps:如果没有安装dconf-editor,要先安装这个命令 sudo apt-get install ~~看来键值真的是更改了,可以直接在dconf-editor下把”candidate-encodings”的值更改为”[‘GB18030’, ‘UTF-8’, ‘CURRENT’...原创 2018-10-24 12:10:27 · 325 阅读 · 0 评论 -
ubuntu系统批量端口永久开放
最近在对端口做有关操作,特将端口范围做记录如下:一般用到的是1到65535,其中0不使用,1-1023为系统端口,也叫BSD保留端口;1024-65535为用户端口,又分为: BSD临时端口(1024-5000)和BSD服务器(非特权)端口(5001-65535).0-1023: BSD保留端口,也叫系统端口,这些端口只有系统特许的进程才能使用;1024-5000: BSD临时端口,一...原创 2018-12-15 17:55:46 · 3270 阅读 · 0 评论 -
LINUX:段错误
什么是段错误段错误是指程序尝试访问一段不可访问的内存。在类Unix系统中,当出现段错误时,系统发送信号量SIGSEGV给产生段错误的进程;在Windows系统中,系统会发送异常STATUS_ACCESS_VIOLATION给产生段错误的进程。产生段错误的原因程序运行过程中能访问到的内存空间主要有栈和堆。栈存放了函数的本地变量,堆是程序运行过程中能够自由分配和使用的内存空间。产生段错...原创 2019-01-18 12:21:20 · 739 阅读 · 0 评论 -
linux:su认证失败
原创 2019-01-22 11:09:58 · 2467 阅读 · 0 评论 -
vim三种模式切换
命令模式:在Linux终端中输入“vim 文件名”就进入了命令模式,但不能输入文字。编辑模式:在命令模式下按i就会进入编辑模式,此时就可以写入程式,按Esc可回到命令模式。末行模式:在命令模式下按:进入末行模式,左下角会有一个冒号出现,此时可以敲入命令并执行。下面是三种模式的简单分析图:一、三种模式的切换(在虚拟机上试一下各种模式的转换,顺便熟悉一下命令):1.首先进入root权限,创建...原创 2018-05-24 13:04:51 · 1118 阅读 · 0 评论 -
Linux下一些实用的操作记录
1.g++编译支持C++11特性: 执行:g++ -o h h.cpp -std=c++11视频讲解:https://www.bilibili.com/video/av37483022/?redirectFrom=h52.vim---C++开发环境搭建https://www.cnblogs.com/tianzhiyi/p/5338032.ht...原创 2018-06-01 16:42:58 · 189 阅读 · 0 评论