linux编译

gcc Makefile 入门

久未见 提交于 2019-11-27 22:15:19
使用 make 命令编译项目文件 入门 目录: 一、 make 命令的运行过程 二、基本gcc编译命令 三、简单Makefile文件的编写 四、实例 一、 make 命令的运行过程 在shell的提示符号下,若输入" make ",则它会到目前的目录下找寻Makefile这个文件.然后依照Makefile中所记录的步骤一步一步的来执行.在我们写 程序的 时候,如果事先就把compiler程式所需要的步骤先写在Makefile中的话,想要compiler 程序的 时候就只要打入 make 的指令.只要程序无误的话,就可以获得所需要的结果了! 在项目文件中,如果有成百上千个源程序,每次修改其中的一个都需要全部重新编译是不可想象的事情.但通过编辑Makefile文件,利用 make 命令就可以只针对其中修改的源文件进行编译,而不需要全体编译.这就是 make 命令在编译项目文件时体现出来的优势.能做到这点,主要是基于Makefile文件的编写,和 make 命令对Makefile文件的调用.Makefile文件作为 make 命令的默认参数,使一个基于依赖关系编写的结构文件. 大家经常看到使用 make all, make install, make clean等命令,而他们处理的目标都是一个Makefile文件,那么all、install

configure,make和make install关系

时光总嘲笑我的痴心妄想 提交于 2019-11-27 20:42:47
linux编译安装中configure、make和make install各自的作用 ./configure是用来检测你的安装平台的目标特征的。configure根据给定的参数和系统环境会生成Makefile控制代码。 make是用来编译的,读取Makefile中的配置对源码进行编译。 make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。 AUTOMAKE和AUTOCONF是非常有用的用来发布C程序的东西。 1、configure 一般用来生成 Makefile,为下一步的编译做准备。 你可以通过在 configure 后加上参数来对安装进行控制,比如代码: ./configure --prefix=/usr 将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。 同时一些软件的配置文件你可以通过指定 --sys-config= 参数进行设定。有一些软件还可以加上 --with、--enable、--without、--disable 等等参数对编译加以控制,你可以通过允许 ./configure --help 察看详细的说明帮助。 2、make make 的作用是开始进行源代码编译,

QT 环境安装和跨平台编译那些事

南楼画角 提交于 2019-11-27 19:48:47
QT源码和SDK下载 http://download.qt.io QT5.13安装 windows下通常使用VS来开发,而linux下则使用OtCreator来开发。 linux,以Ubuntu为例 安装Qt前需要先安装 g++ make sudo apt-get install libgl1-mesa-dev 安装环境准备好后直接安装 ./qt-opensource-linux-x64-5.13.0.run 即可。 注意:一般安装在/usr下,里面很多文件夹,根据文件的类型,分门别类,不是一个软件一个文件夹。以前老版本的Linux习惯放在/usr/local目录下。 部分软件放在/opt下,则是一个软件统一在一个文件夹下。/opt目录专门是用来给第三方软件放置文件的,比如一些压缩包解压的软件都放在这里。 比如“网易云音乐”就安装在/usr/lib/netease-cloud-music 比如Chrome就放在/opt/google/chrome Windows下调试工具的安装设置(使用微软的编译器) 安装完VisualStudio2017后,接着安装win10 SDK,安装完成后,在C:\Program Files (x86)\Windows Kits\10\Debuggers\x64(x86)下有一个cdb.exe用于调试。 Windows下

jdk的下载和环境配置

丶灬走出姿态 提交于 2019-11-27 18:40:29
2019-08-18 下载jdk https://www.oracle.com/technetwork/java/javase/downloads/index.html 选择download 选择对应的版本下载 安装位置 配置环境变量 在 Linux 上 , 需要在~/ . bashrc 或 ~/ . bash _ profile 文件的最后增加这样一行 : export PATH=jdk路径/bin:SPATH 一定要使用jdk的正确路径 如/opt/jdk1.8.0_31 window, 在系统变量中添加JAVA_HOME变量 值填写jdk安装路径 在系统变量Path中添加新的值 用以执行java自带的编译执行程序 在系统变量classpath中添加 用以告诉jvm用户自己的java文件位置 测试环境是否配置成功 win+R cmd打开window命令行窗口 输入java -version 显示java版本 环境配置成功 在命令行中使用javac 命令编译.java 文件 使用java 命令 运行编译后的.class文件 来源: https://www.cnblogs.com/tdcqkfk/p/11372613.html

Linux内核动态模块开发入门

有些话、适合烂在心里 提交于 2019-11-27 16:32:27
写在前面   这篇文章旨在介绍Linux内核动态模块开发时的基本结构,以及如何编译开发的模块。 Linux内核模块开发   我们知道Linux的内核是可以定制的,在编译之前我们可以通过 make menuconfig 对我们的内核进行配置。其中,在配置的过程中,有些模块我们可以选择直接编入内核,或者编成模块动态使用,或者不编译。   如上图所示,当我们选择编译成模块的话,在menuconfig中的配置就可以选择为M,直接编入内核的话就可以选择*,不编译就选空。   所以,当我们开发的内容的内容相对于原本的内核比较独立的时候,我们就可以使用模块开发,并且可以选择性的配置。 模块开发的结构   从结构上来说,Linux内核一个模块的规范还是比较简单的:初始化处理和结束处理。我们可以看一段最为简单的模块代码。 /*=========================================================================== FILE: printk_test.c DESCRIPTION: moddule printk test ==========================================================================*/ //---------------------------------

ndk-build使用说明

老子叫甜甜 提交于 2019-11-27 15:51:38
ndk-build 脚本可用于编译采用 NDK 基于 Make 的编译系统的项目。此外,我们还针对 ndk-build 使用的 Android.mk 和 Application.mk 配置提供了更具体的文档。 内部编译 运行 ndk-build 脚本相当于运行以下命令: $GNUMAKE -f <ndk>/build/core/build-local.mk <parameters> $GNUMAKE 指向 GNU Make 3.81 或更高版本, <ndk> 则指向 NDK 安装目录。您可以根据这项信息从其他 shell 脚本(甚至是您自己的 Make 文件)中调用 ndk-build。 从命令行调用 ndk-build 脚本位于 NDK 安装目录顶层。要从命令行运行该脚本,请在应用项目目录或其子目录中进行调用。例如: $ cd <project> $ <ndk>/ndk-build 在此示例中, <project> 指向项目的根目录, <ndk> 则是您安装 NDK 的目录。 选项 ndk-build 的所有参数都将直接传递到运行 NDK 编译脚本的底层 GNU make 命令。请将 ndk-build 和表单 ndk-build <option> 中的选项结合使用。例如: $ ndk-build clean 您可以使用以下选项: clean 移除之前生成的所有二进制文件。 注意

CentOS6.9安装MySQL(编译安装、二进制安装)

安稳与你 提交于 2019-11-27 14:33:50
目录 CentOS6.9安装MySQL Linux安装MySQL的4种方式: 1. 二进制方式 特点:不需要安装,解压即可使用,不能定制功能 2. 编译安装 特点:可定制,安装慢 5.5之前: ./configure make make install 5.6之后: cmake gmake 3. rpm,yum 特点:安装方便,安装速度快,无法定制 4. 先编译,然后制作rpm,制作yum源,然后yum安装 特点:简单,速度快,可定制,比较复杂,制作时间长 企业选择: 中小企业:以上方式都可以,运维偏向编译安装,dba偏向选择二进制 大型企业:选择第四种 二进制安装步骤: 环境准备 安装 到这里二进制安装就结束了 编译安装步骤: 环境准备 Linux系统,这里以CentOS6.9作为演示 mysql安装包:mysql-5.6.37.tar.gz(后面步骤中有详细的地址) 安装 到这里mysql就安装完毕了,期间碰到了一些坑,好在全部都解决了。 CentOS6.9安装MySQL Linux安装MySQL的4种方式: 1. 二进制方式 特点:不需要安装,解压即可使用,不能定制功能 2. 编译安装 特点:可定制,安装慢 5.5之前: ./configure make make install 5.6之后: cmake gmake 3. rpm,yum 特点:安装方便,安装速度快,无法定制

Android JNI MAC OS环境配置

左心房为你撑大大i 提交于 2019-11-27 14:22:54
Android JNI MAC OS环境配置 http://whbzju.github.io/blog/2013/06/01/android-jni-config/ JUN 1ST, 2013 | COMMENTS 前言—JNI技术简介 JNI是Java Native Interface的缩写,即“Java本地调用”,它是Java世界和Native世界的中介桥梁。其中Native世界一般指C/C++的世界。众所周知,Java是一种跨平台的语言,即Java编写的应用与平台无关。但是,计算机的世界在Java出现之前已经发展了很久,有很多优秀健壮的代码可以复用。比如Linux下的好多驱动模块、文件系统等。Java若去重新实现这些功能,未免费力不讨好,落下重复造轮子的名声。通过JNI技术,使用这些Native的模块,便成了一个折中的办法。同时,Java的世界依靠虚拟机构建,而虚拟机是native语言实现,并且虚拟机运行在具体的平台上,所以虚拟机本身是无法做到平台无关。通过JNI技术,可能做到在Java层的平台无关,即在Java层,底层的细节完全被屏蔽掉了。综合来讲,JNI技术一直支撑这Java世界,只不过我们平时接触的较少。 在Android的世界里,不允许纯C/C++的程序出现,但是它支持JNI,通过JNI来实现java和C/C++的交互。因此,JNI对于需要接触到Android源码

linux编译安装Python3、虚拟环境及工具管理

谁说我不能喝 提交于 2019-11-27 14:01:18
安装Python3 下载python3源码 1.cd /opt 2.wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz 3.安装python3前的库环境 不然后边安装库各种坑 1 yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y 1 注意:有时候会报错yum进程被锁,注意yum只能只有一个进程在安装 2 3 ps -ef|grep yum 4 5 在kill杀掉就是了 4.解压缩 1 tar -xvf Python-3.7.0.tgz 5.编译且安装    1.释放编译文件makefile,就是用来编译安装的 1 ./configure --prefix=/opt/python37/   --prefix指定软件的安装路径     2.执行make命令编译 等的久慢慢等待   3.编译且安装执行make install 生成python37文件   4.配置python3.7的环境变量       1

【转】GCC编译过程

本小妞迷上赌 提交于 2019-11-27 13:26:05
gcc 编译过程 从 hello.c 到 hello(或 a.out)文件, 必须历经 hello.i、 hello.s、 hello.o,最后才得到 hello(或 a.out)文件,分别对应着预处理、编译、汇编和链接 4 个步骤,整个过程如图 10.5 所示。 这 4 步大致的工作内容如下: (1) 预处理, C 编译器对各种预处理命令进行处理,包括头文件包含、宏定义的扩 展、条件编译的选择等; (2) 编译,将预处理得到的源代码文件,进行“翻译转换”,产生出机器语言的目标 程序,得到机器语言的汇编文件; (3) 汇编,将汇编代码翻译成了机器码,但是还不可以运行; (4) 链接,处理可重定位文件,把各种符号引用和符号定义转换成为可执行文件中 的合适信息,通常是虚拟地址。 下面根据 hello.c 这个示例,跟踪一下其中的细节。 ( 1 )预处理 在 gcc 命令加上-E 参数,可以得到预处理文件。输入下列命令: vmuser@Linux-host:hello$ gcc -E hello.c –o hello.i 将会产生 hello.i 文件,这就是 hello.c 经过预处理后的文件。实际操作结果见图 10.6。 图 10.6 预编译得到 hello.i 文件 一个原本连同空行才 8 行的代码,经过预处理,得到了一个 800 多行的预处理文件,文 件开的内容如图 10.7