linux编译

在CentOS 7上编译安装Vim8并支持python3

大城市里の小女人 提交于 2020-03-27 19:13:55
在CentOS 7上编译安装Vim8并支持python3 1. 卸载原来的vim。 yum remove vim-* 安装相关依赖 yum install git -y yum install gcc gcc-c++ -y yum install ncurses-devel -y yum install python3 python3-devel -y 这里只安装了python3支持所需的依赖。如果还需要其他支持,还需要安装其他对应的依赖。 编译安装Vim8 git clone --depth 1 https://github.com/vim/vim ~/vim cd ~/vim ./configure --with-features=huge \ --enable-multibyte \ --enable-python3interp=yes \ --with-python3-config-dir=/usr/lib64/python3.6/config-3.6m-x86_64-linux-gnu \ --enable-gui=gtk2 \ --enable-cscope \ --prefix=/usr/local/vim make sudo make install rm -rf ~/vim 注意这里vim被安装在/usr/local/vim目录下,不需要时可直接删除该目录。

Linux系统C语言开发环境学习

喜你入骨 提交于 2020-03-27 13:25:58
实验四 Linux系统C语言开发环境学习 项目 内容 这个作业属于哪个课程 < 班级课程的主页链接 > 这个作业的要求在哪里 < 作业要求链接接地址 > 学号-姓名 <17043221-汪贵军> 作业学习目标 1.学习Linux系统下C语言开发环境的搭建和使用;2.学习Linux系统环境C语言开发过程。 1.安装C语言开发环境 sudo apt install build-essentia #安装c语言开发环境 gcc -v #查看信息 make -v #查看信息 2.简单C语言练习 1)通过man命令查看帮助文档 man gcc #帮助查看gcc 2)命令行模式简单C语言编译链接等操作 通过vim编辑器编写一个简单的C语言程序,输出自己学号 a)预编译 b)编译 c)汇编 d)链接 可执行文件是二进制文件,同样需要用objdump命令来反汇编该文件分析文件内容 objdump -d test e)运行 ./test #运行文件 3)多文件编译 每个文件的内容分别为 对于多文件编译,我们可以一次编译链接生成可执行文 件,也可以分别编译每个C文件,最后再进行链接得到可执行文件。 前者为一次性编译,可以直接使用源文件链接生成可执行文件。后者为分别编译,会各自生成目标文件,须使用目标文件进行连接生成可执行文件。 编写一个简单的Makefile,通过make工具帮助我们进行编译

Android中的Ninja简介

血红的双手。 提交于 2020-03-26 09:41:00
copy from : https://note.qidong.name/2017/08/android-ninja/ 如果说Makefile是一个DSL,那么Ninja就是一种配置文件。 本文简单介绍Android中的 Ninja 。 Makefile与Ninja的对比 二者最核心的区别,在于设计哲学。 Makefile是设计来给人手写的,而 Ninja 设计出来是给其它程序生成的。 如果说Makefile是C语言,那么 Ninja 就是汇编语言。 如果说Makefile是一个DSL,那么Ninja就是一种配置文件。 Makefile支持分支、循环等流程控制,而 Ninja 只支持一些固定形式的配置。 二者的相同点是,都是为了控制编译流程而设计。 所以,他们的核心功能,都是指定目标,以及目标之间的依赖关系,自动计算执行顺序。 与Makefile相比,由于 Ninja 仅仅专注于核心的功能,所以有轻巧、速度快的优点。 Makefile默认文件名为 Makefile 或 makefile ,也常用 .make 或 .mk 作为文件后缀。 Ninja 的默认文件名是 build.ninja ,其它文件也以 .ninja 为后缀。 执行Makefile的程序,默认是 GNU make ,也有一些其它的实现。 Ninja 的执行程序,就是 ninja 命令。 在Android项目中,

Python简介

筅森魡賤 提交于 2020-03-25 12:32:38
Python简介 Python官方的介绍是: Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程。Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发。 Python是一种解释型语言、交互式语言、面向对象语言 创始人 :吉多·范罗苏姆(Guido van Rossum),荷兰人。人称“龟叔” 名称来源 :龟叔是BBC电视剧——蒙提·派森的飞行马戏团(Monty Python's Flying Circus)的爱好者 创造初衷 :龟叔想设计一种基于C和shell之间、功能全面、易学易用、可拓展的语言。 设计哲学 :“优雅”、“明确”、“简单” 开发哲学 :“用一种方法,最好是只有一种方法来做一件事” Python格言 : >>> import this The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested.

GDB在ARM板中的应用

依然范特西╮ 提交于 2020-03-25 08:13:53
GDB的下载: http://www.gnu.org/software/gdb/ 下载gdb-7.4.tar.bz2 1.解压: tar xjf gdb-7.4.tar.bz2 2.编译gdb和gdbserver 2.1 编译gdb:    cd gdb-7.4/   .configure -- target=arm-linux //配置    make //编译    make install //安装,注意如果直接运行make install的话,直接撞到pc机的usr/bin中去了。我不想这么直接安装,想看看安装时生成什么东西?    vi makefile,然后搜索prefix,这prefix就是指代安装的路径。因此我可以自定义我的安装路径   mkdir tmp    make install prefix = $PWD / tmp   此时可以去tmp目录下,看一下都生成了什么东西。你会看到有bin include lib share目录。进入bin目录,你会看到arm-linux-gdb的程序。 2.2 编译gdbserver   cd gdb / gdbserver   .configure --host = arm-linux    make    编译的过程中会出现错误:PTRACE GETSIGINFO没有定义。-I表示头文件在哪里。在

db2 sqc文件

*爱你&永不变心* 提交于 2020-03-25 08:10:33
针对DB2的嵌入式开发的SQC代码文件,从SQC文件编译成可实行文件的过程,在一般情况下都是通过这本程序的make文件进行编译的,在这里对这个编译过程做一个简单的说明。 1.首先把自己编辑好的SQC文件(如:test.sqc)放在指定的目录下。 2.正式开始编译前,需要和DB2数据库(如:TESTDB)建立连接。 以linux环境为例,在命令行状态下,输入:db2 connect to TESTDB 3.调用DB2的prep命令对SQC文件进行预编译,用来生成C文件。 在命令行状态下,输入:db2 prep test.sqc BINDFILE package using bindtes 来源: https://www.cnblogs.com/hshy/p/12563769.html

python学习笔记(python简史)

血红的双手。 提交于 2020-03-24 17:35:55
一、python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum) 目前python主要应用领域: ·云计算 ·WEB开发 ·科学运算、人工智能 ·系统运维 ·金融:量化交易,金融分析等,作为动态语言的python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛 ·图形GUI python是一门什么样的语言? 编程语言主要从以下几个角度进行分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言。 编译型和解释型 编译型,如:c,c++,其实它和汇编语言是一样的:也是有一个负责翻译的程序来对我们的源代码进行转换,生成相对应的可执行代码。这个过程说得专业一点,就成为编译(Compile),而负责编译的程序自然就成为编译器(Compiler)。如果我们写的程序代码都包含在一个源文件中,那么通常编译之后就会直接生成一个可执行文件,我们就可以直接运行了。对于较复杂的项目,为了方便管理,我们通常把代码分散在各个源文件中,作为不同的模块来组织。这时编译各个文件时就会生成目标文件(Object file)而不是前面说的可执行文件。一般一个源文件的编译都会对应一个目标文件。这些目标文件里的内容基本上已经是可执行代码了,但由于只是整个项目的一部分,所以我们还不能直接运行。待所有的源文件的编译都大功告成,我们就可以最后把这些半成品的目标文件

centos6.4 下安装numpy、scipy、matplotlib

跟風遠走 提交于 2020-03-24 08:00:16
各个安装包版本: scipy-0.11.0 numpy-1.6.2 nose-1.2.1 lapack-3.4.2 ##atlas-3.10.0 (http://pkgs.fedoraproject.org/repo/pkgs/atlas/) 依赖关系:scipy的安装需要依赖于numpy、lapack、atlas(后两者都是线性代数工具包,不清楚的自行google之。。。),而numpy和sci的测试程序的运行又依赖于nose,因此,整个安装过程必须要按顺序执行的,否则是无法执行下去的。 sudo yum -y install gcc gcc-c++ numpy python-devel scipy sudo pip install nose sudo pip install numpy 主要是在安装scipy时问题多多: 1. Blas(http://www.netlib.org /blas/) libraries not found. Directories to search for the libraries can be specified in the numpy/distutils/site.cfg file (section [blas])or by setting the BLAS environment variable. 找不到blas 解决: yum

c++与python混合编程

无人久伴 提交于 2020-03-24 06:26:37
本文分4个部分 C/C++ 调用 Python (基础篇)— 仅讨论Python官方提供的实现方式 Python 调用 C/C++ (基础篇)— 仅讨论Python官方提供的实现方式 C/C++ 调用 Python (高级篇)— 使用 Cython Python 调用 C/C++ (高级篇)— 使用 SWIG 1 C/C++ 调用 Python(基础篇) Python 本身就是一个C库。你所看到的可执行体python只不过是个stub。真正的python实体在动态链接库里实现,在Windows平台上,这个文件位于 %SystemRoot%\System32\python27.dll。 调用示例: //my_python.c #include <Python.h> int main(int argc, char *argv[]) { Py_SetProgramName(argv[0]); Py_Initialize(); PyRun_SimpleString("print 'Hello Python!'\n");//此接口可执行字符串形式的代码 Py_Finalize(); return 0; } 在Windows平台下,利用vs命令提示符,编译命令为 cl my_python.c -IC:Python27\include C:\Python27\libs\python27.lib

linux后台开发常用调试工具

独自空忆成欢 提交于 2020-03-24 01:15:36
linux后台开发常用调试工具 一、编译阶段 nm 获取二进制文件包含的符号信息 strings 获取二进制文件包含的字符串常量 strip 去除二进制文件包含的符号 readelf 显示目标文件详细信息 objdump 尽可能反汇编出源代码 addr2line 根据地址查找代码行 二、运行阶段 gdb 强大的调试工具 ldd 显示程序需要使用的动态库和实际使用的动态库 strace 跟踪程序当前的系统调用 ltrace 跟踪程序当前的库函数 time 查看程序执行时间、用户态时间、内核态时间 gprof 显示用户态各函数执行时间 valgrind 检查内存错误 mtrace 检查内存错误 time(查看程序执行时间、用户态时间、内核态时间) root@test:/home/fengpan# time ps PID TTY TIME CMD 27169 pts/19 00:00:01 bash 30410 pts/19 00:00:00 ps real 0m0.077s user 0m0.014s sys 0m0.009s ldconfig    是一个动态链接库管理命令。为了让动态链接库为系统所共享,需运行动态链接库的管理命令--ldconfig。 ldconfig命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so