linux编译

HIT2019计算机系统大作业

本小妞迷上赌 提交于 2020-01-07 08:34:36
目 录 第1章 概述............................................................................................................. - 4 - 1.1 Hello简介...................................................................................................... - 4 - 1.2 环境与工具..................................................................................................... - 4 - 1.3 中间结果......................................................................................................... - 4 - 1.4 本章小结......................................................................................................... - 4

CentOS编译安装GCC 4.9.2成功

孤街醉人 提交于 2020-01-06 01:37:47
在Linux上编译安装gcc是个寻烦恼的活,对于像我这样习惯于在Windows上面使用二进制安装包的人来说,自已编译安装gcc是个相当大的挑战,今天直接挑战最新版的gcc,是4.9.2版本的,做之前查阅了大量的资料,本次安装使用的系统是CentOS6.4,自带的gcc是4.4.7版本,具体折腾过成如下: 准备工作,   到GNU官方FTP下载GCC的源码包 gcc-4.9.2.tar.gz .   下载下面三个依赖的安装包,这三个包的版本在 gcc-4.9.2/contrib/download_prerequisites 脚本文件中有指明,按这个里面指定的版本下载即可:     ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2     http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2.tar.bz2     http://www.multiprecision.org/mpc/download/mpc-0.8.1.tar.gz 编译:   首先是编译安装三个依赖库,按以下步骤编译安装:     一:解压gmp-4.3.2.tar.bz2到自已指定的一个目录比如/home/[你的用户名]/gmp-4.3.2,另外在建一个/home/[你的用户名]/gmp-build目录,并进入这个目录,在终端里执行../gmp-4

HIT2019计算机系统大作业

北城以北 提交于 2020-01-05 18:44:27
目 录 第1章 概述............................................................................................................. - 4 - 1.1 Hello简介...................................................................................................... - 4 - 1.2 环境与工具..................................................................................................... - 4 - 1.3 中间结果......................................................................................................... - 4 - 1.4 本章小结......................................................................................................... - 4

计算机系统大作业

孤者浪人 提交于 2020-01-04 14:03:39
#计算机系统大作业 题 目 程序人生-Hello’s P2P 专 业 软件工程 学   号 1183710227 班   级 1837102 学 生 孙兴博 指 导 教 师 史先俊 计算机科学与技术学院 2019年12月 摘 要 摘要是论文内容的高度概括,应具有独立性和自含性,即不阅读论文的全文,就能获得必要的信息。摘要应包括本论文的目的、主要内容、方法、成果及其理论与实际意义。摘要中不宜使用公式、结构式、图表和非公知公用的符号与术语,不标注引用文献编号,同时避免将摘要写成目录式的内容介绍。 论文内容主要是在预处理,编译,汇编,链接,进程管理,存储管理,和io管理等方面,对hello例程进行全面的系统级解释。 文章首先对源文件hello.c文件变为hello可执行文件的中的过程,以及产生的中间文件,来描述关于预处理,编译,汇编和链接的内容。再利用hello可执行文件执行过程中进程切换,内存分配情况和输入输出情况对有关于进程管理,存储时地址的管理,地址的映射和转换,Linux下的io管理方法接口等进行描述。 本文通过hello.c例程,对程序从源代码到可执行文件,再到被载入内存执行的过程,使用计算机系统的相关知识概念,进行解释。 关键词:计算机系统、编译,汇编,链接,进程,内存,shell,信号,cache; (摘要0分,缺失-1分,根据内容精彩称都酌情加分0-1分) 目 录 第1章

换个角度说makefile

送分小仙女□ 提交于 2020-01-04 10:14:42
作为Linux下的C/C++开发者,没接触过makefile一定说不过去,通常构建大型的C/C++项目都离不开makefile,也许你使用的是cmake或者其他类似的工具,但它们的本质都是类似的。 作为一个轻度使用者,应读者要求,斗胆介绍一下makefile,不过与普通的makfile教程不同的是,本文准备从另外一个角度来介绍。如有不妥之处,欢迎指出。 makefie到底是什么 在Linux下,对于下面这个简单的程序 //来源:公众号【编程珠玑】 //main.c #include <stdio.h> #include <math.h> int main() { int a = 10; int b = 4; int c = pow(a,b); printf("10^4 = %d",c); return 0; } 我们通常使用gcc就可以编译得到想要的程序了: $ gcc -o main main.c -lm (如果不理解为什么要加-lm,请参考《 一个奇怪的链接问题 》)。 对于单个文件的简单程序,一条命令就可以直接搞定了(编译+连接),但是如果是一个复杂的工程,可能有成千上万个文件,然后需要链接大量的动态或静态库。试想一下,你还想一条一条命令执行吗? 懒惰的基因是刻在程序员骨子里的。 因此你可能会想,那我写个脚本好了。嗯,听起来好多了。 文件多就多,你告诉我要编译哪里的文件

尝试在Jetson nano上跑HyperLPR

江枫思渺然 提交于 2020-01-03 22:55:59
最近开始学习深度学习,电脑带来带去的麻烦,就买了个Jetson nano,正好看到HyperLPR这个开源项目,就尝试在上面跑一下。 深度学习的相关软件更新速度还是很快的,软件版本一变可能就会有很多不兼容。下面记录一下折腾过程。 我的软件环境是 cmake 3.10.2,make 4.1,Python 3.6.9,OpenCV4.1.1,Tersorflow-GPU2.0。因为是尝鲜,所以下载了最新的HyperLPR V2版本,跑的是Prj-linux。 过程很简单,先git clone -b v2 (地址),然后到Prj-linux目录下,先去改一下CMakeLists.txt文件,把路径改对,还得改一下opencv的版本需求。有两个,一个在子目录lpr里面,如下图: 然后 “cmake . ”,“make ”就可以了,编译过程中,因为opencv版本问题,会报错,我的软件环境会有两个错误,都是换一下参数就可以了。如下图: 然后就可以编译成功了,接着就可以跑编译出来的一堆 TEST_* 测试程序,记得要改一下里面的路径重新编译一下,否则加载图片路径不对还是跑不起来。 我临时出去外面路边拍了一些车,识别率还是挺高的,少数一些角度很斜的可能识别不出来,基本上准确率都挺好的,在此感谢热心的HyperLPR开源作者们,希望他们作出最优秀的开源软件~ 来源: CSDN 作者: rsunx

Python学习日记(一)——初识Python

喜你入骨 提交于 2020-01-02 17:24:29
Python的优势 互联网公司广泛使用python来做的事一般有:自动化运维、自动化测试、大数据分析、爬虫、Web等。 Python与其他语言 C和Python、Java、C#:   C 语言:代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作    其他语言:代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码后,再在处理器上执行   对于使用: Python的类库齐全并且使用简洁,如果实现同样的功能,Python 10行代码可以解决,C可能需要100行代码。   对于速度: Python的运行速度相较于C,肯定要慢 Python和Java、C#、PHP等   对于使用:Linux原装Python,其他语言没有;另外以上几门语言都有非常丰富的类库支持   对于速度:Python在速度上可能稍有逊色 所以,Python的其他语言没有什么本质区别,其他区别在于:擅长某领域、人才丰富、先入为主。 Python的种类 Cpython、Jyhton、Iron Python、PyPy、RubyPython、Brython 程序员只要会Python的规则,然后可以用Cpython执行代码,也可以用Jython执行代码 对于Jyhton,会先办你的py代码编译成为 Java认识的中间代码 ,Java虚拟机就可移执行这个中间代码。 Cpython Python的官方版本

Python开发基础-Day1-python入门

血红的双手。 提交于 2020-01-02 17:16:39
编程语言分类 机器语言   使用二进制代码直接编程,直接与硬件交互,执行速度非常快,灵活,但是开发难度高,开发效率低下,缺乏移植性。  汇编语言   对机器语言指令进行了英文封装,较机器语言容易记忆,直接与硬件交互,执行速度快,执行文件小,但是开发难度相对也很高,开发效率低 高级语言   语法简单,容易理解,开发难度低效率高,开发后测试方便,但是开发的程序需要经过转换才能执行,所以执行效率相对慢,可移植性高。   解释执行:代码执行时候,解释器按照源代码文件中的内容,一条条解释并运行,相对编译执行速度慢,但出错方便调试,开发效率高。     例如Python、PHP、Ruby、JavaScript等   编译执行:程序执行前,编译器会将源代码一次性编译成机器能够识别的指令文件,然后运行编译后的文件,速度相对表解释执行要高,但是出错后修改源代码需要重新编译执行,开发效率相对低     例如C语言、C++、GO、Swift、Object-C等   解释执行和编译执行在执行效率上虽然有差别,但是对于当前计算机的硬件计算速度的提升,加上网络环境的限制,执行速度相对来说并不是关键,开发效率才是关键。   像Java和C#属于混合语言,即既有编译执行也有解释执行。 Python简介 Python介绍   Python是一门解释型编程语言,平台兼容性高,省略一堆屁话,这是笔记!!!!  

make, cmake ,makefile,GCC区别

有些话、适合烂在心里 提交于 2020-01-02 12:57:02
1.gcc是GNU Compiler Collection(就是GNU编译器套件),也可以简单认为是编译器,它可以编译很多种编程语言(括C、C++、Objective-C、Fortran、Java等等)。 2.当你的程序只有一个源文件时,直接就可以用gcc命令编译它。 3.但是当你的程序包含很多个源文件时,用gcc命令逐个去编译时,你就很容易混乱而且工作量大 4.所以出现了make工具 make工具可以看成是一个智能的批处理工具,它本身并没有编译和链接的功能,而是用类似于批处理的方式—通过调用makefile文件中用户指定的命令来进行编译和链接的。 5.makefile是什么?简单的说就像一首歌的乐谱,make工具就像指挥家,指挥家根据乐谱指挥整个乐团怎么样演奏,make工具就根据makefile中的命令进行编译和链接的。 6.makefile命令中就包含了调用gcc(也可以是别的编译器)去编译某个源文件的命令。 7.makefile在一些简单的工程完全可以人工手下,但是当工程非常大的时候,手写makefile也是非常麻烦的,如果换了个平台makefile又要重新修改。 8.这时候就出现了Cmake这个工具,cmake就可以更加简单的生成makefile文件给上面那个make用。当然cmake还有其他功能,就是可以跨平台生成对应平台能用的makefile,你不用再自己去修改了。 9

Qt编译

心已入冬 提交于 2020-01-02 10:47:48
工作中要用到麒麟系统,由于麒麟系统自带的Qt模块很少,无法满足要求,于是自己编译源码,版本5.9.2。 1、下载源码和Qt creater。 2、解压到一个目录。 3、编译源码并安装: 1.修改交叉编译器:vim qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.confQMAKE_CC = arm-linux-gnueabihf-gccQMAKE_CXX = arm-linux-gnueabihf-g++QMAKE_LINK = arm-linux-gnueabihf-g++QMAKE_LINK_SHLIB = arm-linux-gnueabihf-g++QMAKE_AR = arm-linux-gnueabihf-ar cqs QMAKE_OBJCOPY = arm-linux-gnueabihf-objcopyQMAKE_NM = arm-linux-gnueabihf-nm -PQMAKE_STRIP = arm-linux-gnueabihf-strip修改为:QMAKE_CC = aarch64-linux-gnu-gccQMAKE_CXX = aarch64-linux-gnu-g++QMAKE_LINK = aarch64-linux-gnu-g++QMAKE_LINK_SHLIB = aarch64-linux-gnu-g+