linux编译

简述-如何在Windows中编译Linux Unix的代码

南楼画角 提交于 2019-12-19 18:13:21
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 第一步:下载安装新版Cygwin软件。该软件的官方网站: http://cygwin.com/    Cygwin软件的作用是让Windows拥有Unix-like环境的软件。所以,GCC等编译器自然也就会包含在里面。不过,对于开发者,Cygwin是一个开发环境。而对于用户来说Cygwin是一个运行环境。    注意:要编译C++或者C程序的话,再安装时在选择组件这一步需要选中Devel 选项下的gcc-core,gcc-g++,make 以及Lib选项卡下的glib2,glib2-devel,glib2-runtime。 第二步:修改 cygwin.bat文件。   找到cygwin项目安装目录下的cygwin .bat文件,用记事本将其打开。修改成如下形式:    @echo off C: set CYGWIN=tty notitle glob set PATH=%PATH%;c:\cygwin\bin;c:\cygwin\sbin;c:\cygwin\usr\bin;c:\cygwin\usr\sbin;c:\cygwin\usr\local\bin set LD_LIBRARY_PATH=c:\cygwin\lib;d:\cygwin\usr\lib;c:\cygwin\usr\local\lib

configure/make/make install的作用

╄→尐↘猪︶ㄣ 提交于 2019-12-19 17:52:28
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。 ./configure 是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC, 并不是需要CC或GCC,它是个shell脚本。 make 是用来编译的,它从Makefile中读取指令,然后编译。 make install 是用来安装的,它也从Makefile中读取指令,安装到指定的位置。 AUTOMAKE和AUTOCONF 是非常有用的用来发布C程序的东西。如果你也写程序想使用AUTOMAKE和AUTOCONF,可以参考CNGNU.ORG上的相关文章。 1、configure ,这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如 代码: ./configure --prefix=/usr 上面的意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin), 资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。 同时一些软件的配置文件你可以通过指定 --sys-config= 参数进行设定。 有一些软件还可以加上 --with、-

Linux编译安装GCC-5.1.0

风流意气都作罢 提交于 2019-12-19 16:40:03
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Linux编译安装GCC-5.1.0 Linux下编写C/C++程序自然缺不了一个优秀的编译器,Linux下比较常见的自然是GCC了。2015年4月下旬GCC也出到了5.1.0 版本,对于C++11/14也有了更好的支持了。因为最近在学习OpenMP, Gcc-5.1.0支持OpenMP4.0最新版本。所以,今天我们就来说说GCC的编译安装,安装的版本正是最新的5.1.0。下面我们进入正题(建议 整个过程以root用户进行): 1. 下载 GCC 源码 : ? 1 wget ftp: //mirrors.kernel.org/gnu/gcc/gcc-5.1.0/gcc-5.1.0.tar.gz 2.解压: ? 1 tar -zxvf gcc- 5.1 . 0 .tar.gz 3.下载编译所需依赖项: ? 1 2 3 cd gcc- 5.1 . 0 //进入解包后的gcc文件夹 ./contrib/download_prerequisites //下载依赖项 cd .. //返回上层目录 4.建立编译输出目录: ? 1 mkdir gcc-build- 5.1 . 0 5.进入输出目录,执行以下命令,并生成makefile文件: ? 1 2 cd gcc-build- 5.1 . 0 ../gcc- 5.1 .

【转】在CentOS 6.4中编译安装GCC 4.8.1 + GDB 7.6.1

本小妞迷上赌 提交于 2019-12-19 16:39:51
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在 CentOS 6.4中编译安装GCC 4.8.1 + GDB 7.6.1 一、编译安装gcc 4.8.1 1. 安装gcc和g++ 新安装的CentOS缺少编译环境,必须先安装旧版本的gcc, 然后再进行自举编译 yum -y install gcc yum -y install gcc-c++ 2. 下载gcc 4.8.1源码包 http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.8.1/gcc-4.8.1.tar.gz 将源码包放在home目录的Download目录中 3. 解压缩gcc 4.8.1源码包 cd /root/Downloads/ tar -zxvf gcc-4.8.1.tar.gz 4. 下载编译所需的依赖包 cd /root/Downloads/gcc-4.8.1 ./contrib/download_prerequisites cd .. 5. 新建目录存放编译结果 mkdir gcc-build-4.8.1 6. 进入新目录,并执行configure命令,产生makefile cd gcc-build-4.8.1 ../gcc-4.8.1/configure --enable-checking=release -

linux源码编译安装gcc 7.2

我们两清 提交于 2019-12-19 15:13:51
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.下载并解压最新版gcc 7.2.0源码以及依赖包GMP,MPFR和MPC: wget https://mirrors.ustc.edu.cn/gnu/gcc/gcc-7.2.0/gcc-7.2.0.tar.gz wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz wget http://www.mpfr.org/mpfr-current/mpfr-3.1.6.tar.gz wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz 2.按顺序编译安装:GMP->MPFR->MPC->GCC: GMP tar Jxvf gmp-6.1.2.tar.xz && mkdir build-gmp-6.1.2 && cd build-gmp-6.1.2 && ../gmp-6.1.2/configure && ccache make -j`getconf _NPROCESSORS_ONLN` && sudo make install && cd .. MPFR tar zxvf mpfr-3.1.6.tar.gz && mkdir build-mpfr-3.1.6 && cd build-mpfr-3.1.6 && ..

编译Linux内核

[亡魂溺海] 提交于 2019-12-19 12:24:08
1、在 http://www.kernel.org/ 上下载内核源代码linux-2.6.32.60.tar.xz,放在/usr/src目录下。 2、进入Linux内核源码所在的目录(cd /usr/src),解压该内核代码到/usr/src/linux-2.6.32.60下: xz -d linux-2.6.32.60.tar.xz tar -xvf linux-2.6.32.60.tar 执行第一条命令式可能会提示找不到xz命令,这时可以输入apt-get install xz-***(后面的不记得了,呵呵)安装xz文件解析程序 3、进入Linux内核源码解压后的目录/usr/src/linux-2.6.32.60(cd /usr/src/linux-2.6.32.60) 4、sudo make mrproper 净化解压后的源代码 5、sudo make menuconfig 对内核选项进行配置 在配置过程中会发生如下错误: *** Unable to find the ncurses libraries or the *** required header files. *** 'make menuconfig' requires the ncurses libraries. *** *** Install ncurses (ncurses-devel) and try

Ubuntu下搭建Android编译环境

南楼画角 提交于 2019-12-19 01:03:45
Ubuntu一台新机器的一些环境搭建 新增一个3TB的硬盘,挂载方法,大于2TB的得parted来进行分区 1: sudo parted /dev/sda 2: mklabel gpt 3: unit TB 4: mkpart primary 0 3 5: quit 6: sudo mkfs.ext3 /dev/sda1 7: sudo blkid (看UUID) 8:写入到/etc/fstab 开机自动挂载 基础环境配置: 1:安装输入搜狗输入法 1)安装fcitx libssh2-1 查看是否安装 dpkg -l | grep fcitx dpkg -l | grep libssh 若没有,则安装 sudo apt-get install fcitx libssh2-1 2)下载搜狗官方的deb包 32位:wget "http://pinyin.sogou.com/linux/download.php?f=linux&bit=32" -O "sougou_32.deb" 64位:wget "http://pinyin.sogou.com/linux/download.php?f=linux&bit=64" -O "sougou_64.deb" 3)安装下载好的deb包 sudo dpkg -i sougou_64.deb 可能会报错,没安装依赖包

C++头文件的包含顺序研究

孤者浪人 提交于 2019-12-18 15:20:34
作者:朱金灿 来源: http://www.cnblogs.com/clever101 一.《 Google C++ 编程风格指南》里的观点 最近公司在推行编码规范,领导提议基本上使用《 Google C++ 编程风格指南》。其中《 Google C++ 编程风格指南》对于头文件的包含顺序是这样的: Names and Order of Includes link ▽ Use standard order for readability and to avoid hidden dependencies: C library, C++ library, other libraries' .h, your project's .h. All of a project's header files should be listed as descendants of the project's source directory without use of UNIX directory shortcuts . (the current directory) or .. (the parent directory). For example, google-awesome-project/src/base/logging.h should be included as #include

【转载】makefile最基本的写法

徘徊边缘 提交于 2019-12-18 14:57:25
在linux下写过不少的fortran程序,但很少写makefile文件,通常情况下我是手动用ifort或pgf90进行编译,虽然也在大型程序中写过一些代码,但因为都有现成的makefile文件,我也只是修改一下配置参数,先make clean,再make,只要生成可执行程序就算搞定了。今天心血来潮,自己写了几个Makefile,供大家参考。 一、不用Makefile的直接编译 比如有2个简单程序,主程序为main.F90,子程序为sub.F90. 如果直接编译的话,键入 ifort main.F90 sub.F90 就可以生成一个a.out文件,即为可执行程序了。 你也可以指定一个可执行程序的名字,如 ifort main.F90 sub.F90 -o bin.exe 则可以生成bin.exe,实际上与a.out是一样的。 当然,如果你不喜欢用子程序,或者子程序和主程序都写在一个F90文件中(如main.F90),上述的编译语句直接省掉sub.F90就行了,但不推荐这样写程序,特别是程序比较大的情况下,一是程序间的关系容易理不清,另外风险也大,万一哪天把程序删掉了或改错了,损失可就大了。 上面的编译也可以分两步进行, ifort -c main.F90 sub.F90 ifort -o main.exe main.o sub.o 第一行称为编译compile

INUX下三个内核文件详解(vmlinuz/initrd.img/System.map)

自闭症网瘾萝莉.ら 提交于 2019-12-18 12:46:58
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在网络中,不少服务器采用的是Linux系统。为了进一步提高服务器的性能,可能需要根据特定的硬件及需求重新编译Linux内核。编译Linux 内核,需要根据规定的步骤进行,编译内核过程中涉及到几个重要的文件。比如对于RedHat Linux,在/boot目录下有一些与Linux内核有关的文件,进入/boot执行:ls –l。编译过RedHat Linux内核的人对其中的System.map 、vmlinuz、initrd-2.4.7-10.img印象可能比较深刻,因为编译内核过程中涉及到这些文件的建立等操作。那么这几个文件是怎么产生 的?又有什么作用呢?本文对此做些介绍。 一、vmlinuz vmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行 的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接。 vmlinuz的建立有两种方式。一是编译内核时通过“make zImage”创建,然后通过:“cp /usr/src/linux-2.4/arch/i386/linux/boot/zImage /boot