linux编译

Linux下通过源码编译安装程序

喜你入骨 提交于 2020-02-14 17:56:25
相似的文章还有https: //www.linuxidc.com/Linux/2018-12/155637.htm https://blog.csdn.net/s1375555/article/details/80445425 https://www.jianshu.com/p/267b393ca7cd 本文简单的记录了下,在Linux下如何通过源码安装程序,以及相关的知识。 一、程序的组成部分 Linux下程序大都是由以下几部分组成: 二进制文件:也就是可以运行的程序文件 库文件:就是通常我们见到的lib目录下的文件 配置文件:这个不必多说,都知道 帮助文档:通常是我们在Linux下用man命令查看的命令的文档 二、Linux下程序的存放目录 Linux程序的存放目录大致有三个地方: /etc, /bin, /sbin, /lib :系统启动就需要用到的程序,这些目录不能挂载额外的分区,必须在根文件系统的分区上 /usr/bin,/usr/sbin,/usr/lib:操作系统核心功能,可以单独分区 /usr/local/bin,/usr/local/sbin,/usr/local/lib,/usr/local/etc,/usr/local/man:这个用于安装第三方程序,分别对应了二进制文件、库文件、配置文件、帮助文档的目录 通常来说我们安装程序就安装在 /usr

Linux服务之 Nginx安装

瘦欲@ 提交于 2020-02-13 04:32:44
安装包下载: 链接:https://pan.baidu.com/s/1yna9nvT_9iYw4_0uVQRgFw 提取码:nurm yum -y install gcc automake autoconf libtool make yum install gcc gcc-c++ cd /usr/local/src 一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。2、安装PCRE库 tar -zxvf pcre-8.38.tar.gz cd pcre-8.38 ./configure make make install  3、安装zlib tar -zxvf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure make make install  4、有些系统没装ssl cd /usr/local/src tar -zxvf openssl-1.0.1t.tar.gz  5、安装Nginx cd /usr/local/src tar -zxvf nginx-1.4.2.tar.gz cd nginx-1.4.2 ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/nginx \ --conf-path=/usr

零起步6-CentOS7.6源码编译安装http轻量级消息队列ucmq

萝らか妹 提交于 2020-02-12 15:27:27
先安装libevent,最新版本号 libevent-2.1.11-stable.tar.gz [root@localhost ~]# ls -al /usr/lib | grep libevent [root@localhost ~]# yum install libtool -y [root@localhost ~]# wget https://github.com/libevent/libevent/releases/download/release-2.1.11-stable/libevent-2.1.11-stable.tar.gz [root@localhost ~]# cd libevent-2.1.11-stable [root@localhost libevent-2.1.11-stable]# ./configure --prefix=/usr/lib/libevent [root@localhost libevent-2.1.11-stable]# make && make install [root@localhost libevent-2.1.11-stable]# ls -al /usr/lib | grep libevent drwxr-xr-x. 5 root root 43 Feb 11 02:48 libevent

根文件系统制作(一)

家住魔仙堡 提交于 2020-02-12 00:49:01
在前面的内核移植中,使用的是开发板上原有的根文件系统,这里就来讨论一下如何自己制作根文件系统。 根文件系统可以由JFFS2、YAFFS2、UBIFS等文件系统支持,这里仍就选择UBIFS文件系统来制作根文件系统。UBIFS是Unsorted Block Image File System(无序区块镜像文件系统)的缩写,是一种较新的文件系统。UBIFS作为JFFS2的后继文件系统之一,在设计与性能上均较YAFFS2、JFFS2更适合于MLC NAND FLASH存储器。Linux内核从2.6.27以后的版本都提供了对它的支持,因此实现起来比较方便。 根文件系统实际上就是Linux根目录树的一个集合,由一些特定的目录、设备节点文件、内核模块文件、库文件、命令集以及其它一些配置文件组成。这个集合最终依赖于某个类型的文件系统来实现,下面就具体来讨论基于UBIFS文件系统的根文件系统制作过程。 首先要建立一个存放根文件集合的目录,这里就在根目录下建立一个名为rootfs的目录,把整个根文件系统都放在这个目录下。接下来进入rootfs目录,并在该目录下建立根目录树的第一层目录,执行“mkdir bin sbin etc dev proc lib sys var mnt usr tmp media home”产生出这些目录。 然后进入dev目录,在该目录下需要制作两个默认的设备节点文件,分别执行

Linux命令行下C++编程初体验

一个人想着一个人 提交于 2020-02-11 14:28:02
1. 源码编辑 (1)vim或gedit等 (2)共享文件夹或samba服务器,到windows下编辑 2. 编译器基本使用 (1)g++ -v查看C++编译器版本号,与gcc用法基本类似 g++ hello.cpp ./a.out (2)-std=c++xx指定编译时使用的C++标准,每一个版本的编译器里面一般都支持好几个版本的C++标准 g++ hello.cpp -std=c++11 指定11版本号编译 g++ hello.cpp -o hello3 -std=c++14 指定14版本号编译 g++ hello.cpp -o hello3 -std=c++17 指定17版本号编译 (3)简单文件直接编译,复杂项目用makefile管理 3. 编译和运行C++程序 (1)g++ hello.cpp -o hello (2)写Makefile编译C++程序 all: g++ hello.cpp -o hello 这些过程与C没有什么区别。 4. Linux下使用cmake管理C++工程 (1)cmake介绍 cmake是makefile的升级版,Makefile的规则非常晦涩难懂,书写非常麻烦,不是每一个人都有能力去写makefile 的,cmake就简单很多,更加智能化 (2)cmake安装 https://cmake.org/download/ 下载源码 解压编译安装

Hadoop(三)---linux编译hadoop2.x

北城余情 提交于 2020-02-11 06:22:24
一、准备的资料 · 64位linux系统。我使用的是 CentOS · JDK 1.7+。注:使用1.7即可,如果是1.8则会编译失败,1.6没有试过,看网上大牛的帖子说也能过 · maven-3.2.5。 这是apache的一个产品,hadoop的编译要就是3.0以上 · protobuf 注:谷歌的产品,最好是提前百度准备一下这个文件 · hadoop-2.5.2-src 这个可以到Apache的官网上去下载 · ant-1.9.4 这个也是Apache的,在文章最后附的参考链接中有关于下载的百度网盘地址 这些文件,需要上传到linux系统中,我使用的是SSH来进行上传的,直接上传到了 /root 目录下。同时由于安装过程中需要在线下载东西,古需要保持linux系统的网络畅通。 二、安装JDK JDK的安装百度一下有很多文章,我使用的是 jdk-7u71-linux-x64.tar.gz。在oracle的官网上也能够下载。jdk的安装在linux下就是一个加压缩的过程。 1 cd /root 2 tar -zxvf jdk-7u71-linux-x64.tar.gz 3 配置环境变量:vim /etc/profile 4 输入命令进入编辑模式:i 5 在文件最后添加:export JAVA_HOME=/root/jdk1.7.0_71 6 export PATH=.:$PATH

android编译错误--/usr/bin/ld: cannot find -lz

牧云@^-^@ 提交于 2020-02-11 01:12:59
编译时出现/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libz.so when searching for -lz错误============================================ PLATFORM_VERSION_CODENAME=AOSP PLATFORM_VERSION=AOSP TARGET_PRODUCT=generic TARGET_BUILD_VARIANT=eng TARGET_SIMULATOR= TARGET_BUILD_TYPE=release TARGET_BUILD_APPS= TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv5te HOST_ARCH=x86 HOST_OS=linux HOST_BUILD_TYPE=release BUILD_ID=OPENMASTER ============================================ host Executable: aapt (out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt) /usr/bin/ld: skipping

使用 linux kernel +busybox 定制linux系统

☆樱花仙子☆ 提交于 2020-02-10 11:32:11
目的: 了解linux的启动过程 主要内容: 1.grub 是启动程序的bootloader 2.linux-kernel 是linux的开源内核 3.busybox 是linux的工具集合 启动顺序: grub-> bzimage > initrd > init > chroot sbin/init (从内存镜像转换成rootfs)>/etc/inittab > fstab>etc/init.d/rcS 实验环境: 操作系统(编译使用): CentOS 7.4Kernel 版本 :5.5.2 1.编译linux kernel 1) 下载及解压: https://www.kernel.org/ 目前最新版本5.5.2 https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.2.tar.xz 复制文件到 /usr/src/linux-5.5.2.tar.xz 解压 tar -xvf linux-5.5.2.tar.xz 2)编译linux kernel: 1 yum install ncusres‐devel # 按照需要编译的一些包 2 cd /usr/src/linux‐5.5.2 # 切换到linux源代码目录 3 make menuconfig #配置内核编译内容,配置一些信息 ,由于是演示,默认就可以了 4 make

cmake 常用变量和常用环境变量

社会主义新天地 提交于 2020-02-09 07:28:46
cmake 常用变量和常用环境变量 一. cmake 变量引用的方式   前面我们已经提到了,使用${ }进行变量的引用。在 IF 等语句中,是直接使用变量名而不通过${ }取值. 二. cmake 自定义变量的方式   主要有隐式定义和显式定义两种,前面举了一个隐式定义的例子,就是 PROJECT 指令,他会隐式的定义“<projectname>_BINARY_DIR ”和“<projectname>_SOURCE_DIR ”两个变量。 使用 SET 指令,就可以构建一个自定义变量了。比如: SET(HELLO_SRC main.SOURCE_PATH) #main.SOURCE_PATH代表main.cpp的路径 这样就可以通过${HELLO_SRC}来引用这个自定义变量了. 三. cmake 常用变量 1. CMAKE_BINARY_DIR PROJECT_BINARY_DIR <projectname>_BINARY_DIR   这三个变量指代的内容是一致的,如果是内部编译,指得就是工程顶层目录;如果是外部编译,指的是工程编译发生的目录。 PROJECT_BINARY_DIR 跟其他指令稍有区别,现在,你可以理解为他们是一致的。 2. CMAKE_SOURCE_DIR PROJECT_SOURCE_DIR <projectname>_SOURCE_DIR  

linux内核源码级调试

天涯浪子 提交于 2020-02-09 04:20:18
一 linux内核源码阅读工具 windows下当然首选source insight, 但是linux下就没有source insight这么优秀的工具了,但是也有不少的替代品,但觉绝对部分人会选择vim+ctags+cscope的组合,还有部分人或选择wine中的source insight或选择navigatror,当然对于代码阅读来说vim+ctags+cscope的组合还是比较好的一个选择方案,但是,当我使用了eclipse之后,个人感觉用eclipse作为linux环境下源码阅读工具确实比vim+ctags+cscope的组合方便很多。 下面是linux环境下eclipse的配置安装方案: eclipse下载地址: http://eclipse.org/downloads/?osType=linux eclipse环境配置方案: http://forum.ubuntu.org.cn/viewtopic.php?t=183803 二 eclipse + qemu 进行linux源码的编译和调试 最初调试内核采用了qemu + insight 或qemu + ddd的组合,相比来说insgiht的界面更加有好些,但是ubuntu 10.04以上的版本,删除了对Insight的默认支持,只能下载insight的源码编译安装,而且insight更新非常慢。