linux编译

详解CentOS7下编译安装Redis5.x设置开机启动及修改端口(含redis需编译安装包和redis免编译安装包)

浪尽此生 提交于 2019-12-23 18:27:50
“前人栽树,后人乘凉”。对于初次接触redis的小白来说,网上有很多操作的教程可以进行参考,H哥在操作时,也查找过很多相关的讲解和说明,在实际操作中也对大牛的文章也赞不绝口。但对理解不深的小白来说,详细的讲解能帮助其更好的学习。 言归正传,接下来为大家讲解redis的安装及相关操作。 主要解决问题: 联网下载安装redis 离线安装redis 联网或离线安装免编译版redis 一,前置环境 Centos7 二,联网下载安装redis 对于有网络条件下,可以直接进行网上下载,解压并安装。 获取最新redis版本: https://redis.io/download ,下载Stable版本,当前最新版本5.0.7 1,下载安装包 [root@localhost ~]# cd /usr/local/ [root@localhost local]# wget http://download.redis.io/releases/redis-5.0.7.tar.gz 如果出现-bash: wget: 未找到命令。说明命令没安装。执行yum安装。 [root@localhost ~]# yum install wget 2,解压安装包 [root@localhost local]# tar -xzf redis-5.0.7.tar.gz 3、进入解压的redis目录,通过 make 命令进行编译

Python基础1-Python基础概念

别等时光非礼了梦想. 提交于 2019-12-23 01:35:01
本节内容 Python是一门什么样的语言 Python主要应用领域 Python的有缺点 1.Python 是一门什么样的语言 Python是解释型语言 编译型语言解释:一次把所有的代码转换成机器语言,然后写成可执行文件。 解释型语言解释:程序每执行到源程序的某一条指令,会有一个称之为解释程序的外壳程序(解释器)将源代码转换成二进制代码以供执行,总言之,就是不断地解释、执行、解释、执行。 编译型vs解释型 编译型 优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以 编译型语言的程序执行效率高 。 可以脱离语言环境独立运行 。 缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题, 需要根据运行的操作系统环境编译不同的可执行文件 。 解释型 优点:有良好的平台兼容性,安装了解释器(虚拟机)后在任何环境中都可以运行。灵活, 修改代码的时候直接修改就可以了 ,可以快速部署,不用停机维护。 缺点: 每次运行的时候都要解释一遍,性能上不如编译型语言 。 Python是动态类型语言 动态类型语言: 动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时, 永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。

树莓派折腾笔记_1_uboot移植

霸气de小男生 提交于 2019-12-22 18:36:16
uboot移植 准备工作 在移植之前,需准备以下相关source code和tools,因为在u-boot的主分支中已经支持raspberry,所以我们可以直接去官网下载最新的code,另外由于raspberry的firmware并没有开源,所以我们只能去github上拿最新的编好的二进制文件。 板子:Raspberry 3B v1.2 u-boot:u-boot-2019.07 https://ftp.denx.de/pub/u-boot/ firmware:master分支 https://github.com/raspberrypi/firmware.git tools: https://github.com/raspberrypi/tools.git 包含交叉编译工具 另需一张SD卡和SD卡读卡器 编译u-boot 准备了相关code和tools之后,我们首先需要搭建交叉编译环境 1、首先需要将交叉编译工具的地址加入PATH变量中(交叉编译工具我们可以在tools文件夹中找到) export PATH=/home/log/log/raspberryPi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/:$PATH 在这里需要说明的是,tools文件夹提供了以下六种编译工具

【驱动】linux设备驱动·入门

余生颓废 提交于 2019-12-22 13:00:05
linux设备驱动 驱动程序英文全称Device Driver,也称作设备驱动程序。 驱动程序是用于计算机和外部设备通信的特殊程序,相当于软件和硬件的接口,通常只有操作系统能使用驱动程序。 在现代计算机体系结构中,操作系统并不直接于硬件打交道,而是通过驱动程序于硬件通信。 设备驱动介绍 驱动程序是附加到操作系统的一段程序,通常用于硬件通信。 每种硬件都有自己的驱动程序,其中包含了硬件设备的信息。操作系统通过驱动程序提供的硬件信息与硬件设备通信。由于驱动设备的重要性,在安装操作系统后需要安装驱动程序,外部设备才能正常工作。 Linux内核自带了相当多的设备驱动程序,几乎可以驱动目前主流的各种硬件设备。 在同一台计算机上,尽管设备是相同的,但是由于操作系统不同,驱动程序是有很大差别的。但是,无论什么 系统驱动程序的功能 都是相似的,可以归纳为下面三点: 初始化硬件设备。 这是驱动程序最基本的功能,初始化通过总线识别设备,访问设备寄存器,按照需求配置设备地端口,设置中断等。 向操作系统提供统一的软件接口。 设备驱动程序向操作系统提供了一类设备通用的软件接口,如硬盘设备向操作系统提供了读写磁盘块、寻址等接口,无论是哪种品牌的硬盘驱动向操作系统提供的接口都是一致的。 提供辅助功能。 现代计算机的处理能力越来越强,操作系统有一类虚拟设备驱动,可以模拟真实设备的操作

Python 交叉编译

为君一笑 提交于 2019-12-22 11:05:16
Python 交叉编译 情况说明 自己想要在Windows 虚拟机Ubuntu18.04 中编译python解释器,以移植到ARM平台上执行,主要目标是在ARM QEMU中进行执行。 编译环境:Ubuntu 18.04 编译器:gcc, arm-linux-gnueabi Python版本:2.7.3 和 3.5.5 整个过程分为三个步骤 编译生成当前平台该版本的python 给低版本python2.7.3 打上交叉编译的补丁,其中高版本python没有交叉编译的补丁(忘记在哪篇文章看到过这句话,囧) 交叉编译生成目标机ARM上的python 参考链接 https://www.cnblogs.com/tolimit/p/4519838.html http://idiip.jiinii.com/cross-compile-python-3.html 详情 步骤一: 进入python源码目录,执行 ./configure 编译当前平台该python版本对应的python和Parser/pgen ( 源码根目录下生成 python 可执行文件, Parser/目录下生成pgen 可执行文件) make python Parser/pgen 将当前平台对应的python 可执行文件备份为python_for_build mv python python_for_build

Linux(2)

瘦欲@ 提交于 2019-12-22 10:33:27
文章目录 Linux 1 软件安装 1.1 yum 1.2 编译安装 2 java环境搭建 2.1 安装jdk 2.2 安装tomcat 2.3 安装mysql Linux 1 软件安装 1.1 yum yum 是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。 yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。 语法 yum [options] [command] [package …] ⚫ options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等。 ⚫ command:要进行的操作。 ⚫ package 操作的对象。 常用命令 ⚫ 列出所有可更新的软件清单命令:yum check-update ⚫ 更新所有软件命令:yum update ⚫ 仅安装指定的软件命令:yum install < package_name> ⚫ 仅更新指定的软件命令:yum update < package_name> ⚫ 列出所有可安裝的软件清单命令:yum list ⚫ 删除软件包命令:yum remove < package_name> ⚫ 查找软件包 命令:yum search < keyword> 1.2 编译安装 首先我们需要知道几个概念: ⚫

vim 和 gcc 的使用

为君一笑 提交于 2019-12-22 05:22:22
Linux-编辑器 vim的使用 vim 的三种模式:  1.普通模式(命令/正常模式)(用vim 初次打开的默认模式)    控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode  2.插入模式    只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。该模式是我们后面用的最频繁的编辑模式。  3.底行模式    文件保存或退出,也可以进行文件替换,找字符串,列出行号等操作。 在命令模式下,shift+: 即可进入该模式。要查看你的所有模式:打开vim 模式转换 插入模式 按「i」切换进入插入模式「insert mode」, 按“i”进入插入模式后是从光标当前位置开始输入文件; 按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字; 按「o」进入插入模式后,是插入新的一行,从行首开 (光标换行) 命令模式 按[EXC] 键 普通模式切换至底行模式 「shift + ;」, 其实就是输入「:」 插入模式下的操作 移删复替撤改跳 移动光标 vim可以直接用键盘上的光标来上下左右移动,但正规的vim是用小写英文字母 「h」、控制光标左移一格 「j」、控制光标下移一格 「k」、控制光标上移一格 「l」、控制光标右移一格 「w」、光标跳到下一个字的字首 「b」

编译和链接的过程(非原创,转载)

扶醉桌前 提交于 2019-12-22 05:04:35
转载这篇博文的目的是想要记录自己不太明白的地方 程序要运行起来,必须要经过四个步骤:预处理、编译、汇编和链接。接下来通过几个简单的例子来详细讲解一下这些过程。 对于上边用到的几个选项需要说明一下。 使用 gcc 命令不跟任何的选项的话,会默认执行预处理、编译、汇编、链接这整个过程,如果程序没有错,就会得到一个可执行文件,默认为a.out -E选项:提示编译器执行完预处理就停下来,后边的编译、汇编、链接就先不执行了。 -S选项:提示编译器执行完编译就停下来,不去执行汇编和链接了。 -c选项:提示编译器执行完汇编就停下来。 所以,这三个选项相当于是限定了编译器执行操作的停止时间,而不是单独的将某一步拎出来执行。 上述程序的执行过程大家应该都很熟悉了,就不浪费口舌了。 一、预处理: 使用-E选项,表示只进行预编译,对应生成一个 .i 文件。 预处理过程进行的操作: 将所有的“#define”删除,并且展开所有的宏定义 处理所有的条件编译指令,比如“#if”、“#ifdef”、“#elif”、“#else”、“#endif” 处理“#include”预编译指令,将被包含的头文件插入到该编译指令的位置。(这个过程是递归进行的,因为被包含的文件可能还包含了其他文件) 删除所有的注释“//”和“/* */”。 添加行号和文件名标识

CMAKE的使用

北战南征 提交于 2019-12-22 02:24:21
一、 基本使用 安装:下载二进制包后可直接解压使用 从源码安装则执行命令:./bootstrap; make; make install——尝试执行bootstrap失败 使用:cmake dir_path,生成工程文件或makefile文件 二、 概念 out-of-source build,与in-source build相对,即将编译输出文件与源文件放到不同目录中; 三、 基本结构 1,依赖CMakeLists.txt文件,项目主目标一个,主目录中可指定包含的子目录; 2,在项目CMakeLists.txt中使用project指定项目名称,add_subdirectory添加子目录 3,子目录CMakeLists.txt将从父目录CMakeLists.txt继承设置(TBD,待检验) 四、 语法 1. #注释 2. 变量:使用set命令显式定义及赋值,在非if语句中,使用${}引用,if中直接使用变量名引用;后续的set命令会清理变量原来的值; 3. command (args ...) #命令不分大小写,参数使用空格分隔,使用双引号引起参数中空格 4. set(var a;b;c) <=> set(var a b c) #定义变量var并赋值为a;b;c这样一个string list 5. Add_executable(${var}) <=> Add_executable

ubuntu18.04中搭建latex环境

纵饮孤独 提交于 2019-12-22 01:32:13
安装texlive(在这过程中可能需要一个小时的时间) texlive的作用相当于是编译器。编辑器中的内容经过编译器编译之后会生成pdf文档。 sudo apt-get install texlive-full 安装texmaker texmaker的相当于是编辑器。可以对各种格式的LaTex指令和论文的内容进行编辑,这些内容经过编译(编译的时候会调用前面已经安装的texlive,快捷键是F1,也可以在工具栏中依次点击 工具–》快速构建)之后会生成pdf文档。 sudo apt-get install texmaker 打开textmaker 在linux系统中,重要的是首先要将构建命令改为XeLaTex,这样在编译的时候就不会报错了,如下图。 演示插入图片,上下标 _后面跟的是下标,^后面跟的是上标。 \documentclass[UTF8]{ctexart} \usepackage{graphicx} %调用graphicx宏包 \begin{document} \begin{figure}[ht] \includegraphics[scale=0.6]{demo.png} \caption{这是演示图片} \end{figure} \section{这是一个段落} $a_{\frac{3}{4}}^n$ $a^n_{\frac{3}{4}}$ \section{这是第二个段落