Read more:
How to install cygwin
How to add packages after install Cygwin
Cygwin Prerequisites
The Cygwin installer and the packages can be obtained from http://cygwin.com/. The following Cygwin packages are needed for compilation and installation of the gcc/g++ compiler from the source:
- bash
- binutils
- bzip2
- cygwin
- gcc-core
- gcc-g++
- gzip
- m4
- make
- unzip
- zip
To check that the packages are installed, you may run the command:
cygcheck -c bash binutils bzip2 cygwin gcc-core gcc-g++ gzip m4 make unzip zip
Result:
$ cygcheck -c bash binutils bzip2 cygwin gcc-core gcc-g++ gzip m4 make unzip zip Cygwin Package Information Package Version Status bash 4.3.42-4 OK bzip2 1.0.6-2 OK cygwin 2.5.1-1 OK gzip 1.7-2 OK m4 1.4.17-2 OK make 4.1-1 OK unzip 6.0-15 OK zip 3.0-12 OK
Must install binutils, gcc-core and gcc-g++
Installation binutils:
$ apt-cyg install binutils Installing binutils --2016-08-20 22:27:02-- http://cygwin.mirror.constant.com//x86_64/release/binutils/binutils-2.25-4.tar.xz Resolving cygwin.mirror.constant.com (cygwin.mirror.constant.com)... 108.61.5.83 Connecting to cygwin.mirror.constant.com (cygwin.mirror.constant.com)|108.61.5.83|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 5233952 (5,0M) [application/octet-stream] Saving to: ‘binutils-2.25-4.tar.xz’ binutils-2.25-4.tar 100%[===================>] 4,99M 136KB/s in 77s 2016-08-20 22:28:25 (66,6 KB/s) - ‘binutils-2.25-4.tar.xz’ saved [5233952/5233952] binutils-2.25-4.tar.xz: OK Unpacking... Package binutils requires the following packages, installing: cygwin libintl8 zlib0 Package cygwin is already installed, skipping Package libintl8 is already installed, skipping Package zlib0 is already installed, skipping Package binutils installed
Installation gcc-core:
$ apt-cyg install gcc-core Installing gcc-core --2016-08-20 22:42:40-- http://cygwin.mirror.constant.com//x86_64/release/gcc/gcc-core/gcc-core-5.3.0-5.tar.xz Resolving cygwin.mirror.constant.com (cygwin.mirror.constant.com)... 108.61.5.83 Connecting to cygwin.mirror.constant.com (cygwin.mirror.constant.com)|108.61.5.83|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 16841096 (16M) [application/octet-stream] Saving to: ‘gcc-core-5.3.0-5.tar.xz’ gcc-core-5.3.0-5.ta 100%[===================>] 16,06M 403KB/s in 70s 2016-08-20 22:43:51 (235 KB/s) - ‘gcc-core-5.3.0-5.tar.xz’ saved [16841096/16841096] gcc-core-5.3.0-5.tar.xz: OK Unpacking... Package gcc-core requires the following packages, installing: bash binutils cygwin cygwin-devel libatomic1 libgcc1 libgmp10 libgomp1 libiconv2 libintl8 libisl13 libmpc3 libmpfr4 libquadmath0 libssp0 libvtv0 w32api-headers w32api-runtime windows-default-manifest zlib0 Package bash is already installed, skipping Package binutils is already installed, skipping Package cygwin is already installed, skipping Installing cygwin-devel --2016-08-20 22:44:09-- http://cygwin.mirror.constant.com//x86_64/release/cygwin/cygwin-devel/cygwin-devel-2.5.1-1.tar.xz Resolving cygwin.mirror.constant.com (cygwin.mirror.constant.com)... 108.61.5.83 Connecting to cygwin.mirror.constant.com (cygwin.mirror.constant.com)|108.61.5.83|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 282796 (276K) [application/octet-stream] Saving to: ‘cygwin-devel-2.5.1-1.tar.xz’ cygwin-devel-2.5.1- 100%[===================>] 276,17K 92,7KB/s in 3,0s 2016-08-20 22:44:13 (92,7 KB/s) - ‘cygwin-devel-2.5.1-1.tar.xz’ saved [282796/282796] cygwin-devel-2.5.1-1.tar.xz: OK Unpacking... Installing libatomic1 --2016-08-20 22:44:20-- http://cygwin.mirror.constant.com//x86_64/release/gcc/libatomic1/libatomic1-5.3.0-5.tar.xz Resolving cygwin.mirror.constant.com (cygwin.mirror.constant.com)... 108.61.5.83 Connecting to cygwin.mirror.constant.com (cygwin.mirror.constant.com)|108.61.5.83|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 6356 (6,2K) [application/octet-stream] Saving to: ‘libatomic1-5.3.0-5.tar.xz’ libatomic1-5.3.0-5. 100%[===================>] 6,21K --.-KB/s in 0,002s 2016-08-20 22:44:21 (2,83 MB/s) - ‘libatomic1-5.3.0-5.tar.xz’ saved [6356/6356] libatomic1-5.3.0-5.tar.xz: OK Unpacking... Package libatomic1 requires the following packages, installing: cygwin Package cygwin is already installed, skipping Package libgcc1 is already installed, skipping Package libgmp10 is already installed, skipping Installing libgomp1 --2016-08-20 22:44:29-- http://cygwin.mirror.constant.com//x86_64/release/gcc/libgomp1/libgomp1-5.3.0-5.tar.xz Resolving cygwin.mirror.constant.com (cygwin.mirror.constant.com)... 108.61.5.83 Connecting to cygwin.mirror.constant.com (cygwin.mirror.constant.com)|108.61.5.83|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 42408 (41K) [application/octet-stream] Saving to: ‘libgomp1-5.3.0-5.tar.xz’ libgomp1-5.3.0-5.ta 100%[===================>] 41,41K 65,0KB/s in 0,6s 2016-08-20 22:44:31 (65,0 KB/s) - ‘libgomp1-5.3.0-5.tar.xz’ saved [42408/42408] libgomp1-5.3.0-5.tar.xz: OK Unpacking... Package libgomp1 requires the following packages, installing: cygwin libgcc1 Package cygwin is already installed, skipping Package libgcc1 is already installed, skipping Package libiconv2 is already installed, skipping Package libintl8 is already installed, skipping Installing libisl13 --2016-08-20 22:44:40-- http://cygwin.mirror.constant.com//x86_64/release/isl/libisl13/libisl13-0.14.1-1.tar.xz Resolving cygwin.mirror.constant.com (cygwin.mirror.constant.com)... 108.61.5.83 Connecting to cygwin.mirror.constant.com (cygwin.mirror.constant.com)|108.61.5.83|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 375052 (366K) [application/octet-stream] Saving to: ‘libisl13-0.14.1-1.tar.xz’ libisl13-0.14.1-1.t 100%[===================>] 366,26K 48,7KB/s in 7,5s 2016-08-20 22:44:48 (48,7 KB/s) - ‘libisl13-0.14.1-1.tar.xz’ saved [375052/375052] libisl13-0.14.1-1.tar.xz: OK Unpacking... Package libisl13 requires the following packages, installing: cygwin libgmp10 Package cygwin is already installed, skipping Package libgmp10 is already installed, skipping Installing libmpc3 --2016-08-20 22:44:57-- http://cygwin.mirror.constant.com//x86_64/release/mpclib/libmpc3/libmpc3-1.0.3-1.tar.xz Resolving cygwin.mirror.constant.com (cygwin.mirror.constant.com)... 108.61.5.83 Connecting to cygwin.mirror.constant.com (cygwin.mirror.constant.com)|108.61.5.83|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 34044 (33K) [application/octet-stream] Saving to: ‘libmpc3-1.0.3-1.tar.xz’ libmpc3-1.0.3-1.tar 100%[===================>] 33,25K 54,8KB/s in 0,6s 2016-08-20 22:44:58 (54,8 KB/s) - ‘libmpc3-1.0.3-1.tar.xz’ saved [34044/34044] libmpc3-1.0.3-1.tar.xz: OK Unpacking... Package libmpc3 requires the following packages, installing: cygwin libgmp10 libmpfr4 Package cygwin is already installed, skipping Package libgmp10 is already installed, skipping Package libmpfr4 is already installed, skipping Package libmpfr4 is already installed, skipping Installing libquadmath0 --2016-08-20 22:45:05-- http://cygwin.mirror.constant.com//x86_64/release/gcc/libquadmath0/libquadmath0-5.3.0-5.tar.xz Resolving cygwin.mirror.constant.com (cygwin.mirror.constant.com)... 108.61.5.83 Connecting to cygwin.mirror.constant.com (cygwin.mirror.constant.com)|108.61.5.83|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 130632 (128K) [application/octet-stream] Saving to: ‘libquadmath0-5.3.0-5.tar.xz’ libquadmath0-5.3.0- 100%[===================>] 127,57K 58,7KB/s in 2,2s 2016-08-20 22:45:08 (58,7 KB/s) - ‘libquadmath0-5.3.0-5.tar.xz’ saved [130632/130632] libquadmath0-5.3.0-5.tar.xz: OK Unpacking... Package libquadmath0 requires the following packages, installing: cygwin libgcc1 Package cygwin is already installed, skipping Package libgcc1 is already installed, skipping Package libssp0 is already installed, skipping Installing libvtv0 --2016-08-20 22:45:16-- http://cygwin.mirror.constant.com//x86_64/release/gcc/libvtv0/libvtv0-5.3.0-5.tar.xz Resolving cygwin.mirror.constant.com (cygwin.mirror.constant.com)... 108.61.5.83 Connecting to cygwin.mirror.constant.com (cygwin.mirror.constant.com)|108.61.5.83|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1928 (1,9K) [application/octet-stream] Saving to: ‘libvtv0-5.3.0-5.tar.xz’ libvtv0-5.3.0-5.tar 100%[===================>] 1,88K --.-KB/s in 0s 2016-08-20 22:45:18 (6,21 MB/s) - ‘libvtv0-5.3.0-5.tar.xz’ saved [1928/1928] libvtv0-5.3.0-5.tar.xz: OK Unpacking... Package libvtv0 requires the following packages, installing: cygwin Package cygwin is already installed, skipping Installing w32api-headers --2016-08-20 22:45:26-- http://cygwin.mirror.constant.com//x86_64/release/w32api-headers/w32api-headers-4.0.4-1.tar.xz Resolving cygwin.mirror.constant.com (cygwin.mirror.constant.com)... 108.61.5.83 Connecting to cygwin.mirror.constant.com (cygwin.mirror.constant.com)|108.61.5.83|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 4522336 (4,3M) [application/octet-stream] Saving to: ‘w32api-headers-4.0.4-1.tar.xz’ w32api-headers-4.0. 100%[===================>] 4,31M 474KB/s in 18s 2016-08-20 22:45:46 (241 KB/s) - ‘w32api-headers-4.0.4-1.tar.xz’ saved [4522336/4522336] w32api-headers-4.0.4-1.tar.xz: OK Unpacking... Installing w32api-runtime --2016-08-20 22:46:02-- http://cygwin.mirror.constant.com//x86_64/release/w32api-runtime/w32api-runtime-4.0.4-1.tar.xz Resolving cygwin.mirror.constant.com (cygwin.mirror.constant.com)... 108.61.5.83 Connecting to cygwin.mirror.constant.com (cygwin.mirror.constant.com)|108.61.5.83|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1948268 (1,9M) [application/octet-stream] Saving to: ‘w32api-runtime-4.0.4-1.tar.xz’ w32api-runtime-4.0. 100%[===================>] 1,86M 115KB/s in 13s 2016-08-20 22:46:16 (147 KB/s) - ‘w32api-runtime-4.0.4-1.tar.xz’ saved [1948268/1948268] w32api-runtime-4.0.4-1.tar.xz: OK Unpacking... Package w32api-runtime requires the following packages, installing: w32api-headers Package w32api-headers is already installed, skipping Installing windows-default-manifest --2016-08-20 22:46:40-- http://cygwin.mirror.constant.com//x86_64/release/windows-default-manifest/windows-default-manifest-6.4-1.tar.xz Resolving cygwin.mirror.constant.com (cygwin.mirror.constant.com)... 108.61.5.83 Connecting to cygwin.mirror.constant.com (cygwin.mirror.constant.com)|108.61.5.83|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1244 (1,2K) [application/octet-stream] Saving to: ‘windows-default-manifest-6.4-1.tar.xz’ windows-default-man 100%[===================>] 1,21K --.-KB/s in 0s 2016-08-20 22:46:41 (19,4 MB/s) - ‘windows-default-manifest-6.4-1.tar.xz’ saved [1244/1244] windows-default-manifest-6.4-1.tar.xz: OK Unpacking... Package zlib0 is already installed, skipping Package gcc-core installed
Installation gcc-g++:
$ apt-cyg install gcc-g++ Installing gcc-g++ --2016-08-20 22:47:46-- http://cygwin.mirror.constant.com//x86_64/release/gcc/gcc-g++/gcc-g++-5.3.0-5.tar.xz Resolving cygwin.mirror.constant.com (cygwin.mirror.constant.com)... 108.61.5.83 Connecting to cygwin.mirror.constant.com (cygwin.mirror.constant.com)|108.61.5.83|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 10025164 (9,6M) [application/octet-stream] Saving to: ‘gcc-g++-5.3.0-5.tar.xz’ gcc-g++-5.3.0-5.tar 100%[===================>] 9,56M 471KB/s in 30s 2016-08-20 22:48:17 (328 KB/s) - ‘gcc-g++-5.3.0-5.tar.xz’ saved [10025164/10025164] gcc-g++-5.3.0-5.tar.xz: OK Unpacking... Package gcc-g++ requires the following packages, installing: cygwin gcc-core libgmp10 libiconv2 libintl8 libisl13 libmpc3 libmpfr4 libstdc++6 zlib0 Package cygwin is already installed, skipping Package gcc-core is already installed, skipping Package libgmp10 is already installed, skipping Package libiconv2 is already installed, skipping Package libintl8 is already installed, skipping Package libisl13 is already installed, skipping Package libmpc3 is already installed, skipping Package libmpfr4 is already installed, skipping Package libstdc++6 is already installed, skipping Package zlib0 is already installed, skipping Package gcc-g++ installed
Environment variables:
add to the file /home/Administrator/.bashrc some lines below:
export LD_LIBRARY_PATH=/usr/local/lib export LIBRARY_PATH=/usr/local/lib export CPATH=/usr/local/include
Close Cygwin terminal and reopen it.
You can check that the variables are set correctly by entering the shell commands
echo LD_LIBRARY_PATH=${LD_LIBRARY_PATH};\ echo LIBRARY_PATH=${LIBRARY_PATH};\ echo CPATH=${CPATH};\ echo PATH=${PATH};
Result:
LD_LIBRARY_PATH=/usr/local/lib LIBRARY_PATH=/usr/local/lib CPATH=/usr/local/include PATH=/usr/local/bin:/usr/bin:/cygdrive/c/ProgramData/Oracle/Java/javapath:/cygdrive/c/Program Files (x86)/Common Files/Intel/Shared Files/cpp/bin/Intel64:/cygdrive/c/Program Files (x86)/NVIDIA Corporation/PhysX/Common:/cygdrive/c/Windows/system32:/cygdrive/c/Windows:/cygdrive/c/Windows/System32/Wbem:/cygdrive/c/Windows/System32/WindowsPowerShell/v1.0:/cygdrive/c/Program Files (x86)/Bitvise SSH Client:/cygdrive/c/Program Files/Microsoft Windows Performance Toolkit:/cygdrive/c/Program Files/Microsoft SQL Server/110/Tools/Binn:/cygdrive/c/Program Files (x86)/Windows Kits/8.0/Windows Performance Toolkit:/cygdrive/c/Program Files (x86)/Skype/Phone:/cygdrive/c/Program Files/nodejs:/cygdrive/c/Program Files/Java/jdk1.8.0_66/bin:/cygdrive/c/Program Files (x86)/QuickTime/QTSystem:/cygdrive/d/HaxeToolkit/haxe:/cygdrive/d/HaxeToolkit/neko:/cygdrive/c/ProgramData/ComposerSetup/bin:/cygdrive/d/AppServ/Apache2.2/bin:/cygdrive/d/AppServ/php5:/cygdrive/d/AppServ/MySQL/bin:/cygdrive/c/Python27:/cygdrive/c/GTK/bin:/cygdrive/c/Users/Administrator/AppData/Roaming/npm:/cygdrive/c/Eclipse:/cygdrive/c/Users/Administrator/AppData/Roaming/Composer/vendor/bin
Prepare the Compiler Sources
Create folder /usr/local/contrib
mkdir /usr/local/contrib
Then move into this directory by
cd /usr/local/contrib
Then download theses sources
1. gmp-6.1.1.tar.bz2 from http://gmplib.org/
2. mpfr-3.1.4.tar.bz2 from http://mpfr.org/
3. mpc-1.0.3.tar.gz from http://www.multiprecision.org/
4. gcc-6.1.0.tar.bz2 from a mirror at http://gcc.gnu.org/mirrors.html
and put them in this folder.
$ wget https://gmplib.org/download/gmp/gmp-6.1.1.tar.bz2 --2016-08-20 23:20:31-- https://gmplib.org/download/gmp/gmp-6.1.1.tar.bz2 Resolving gmplib.org (gmplib.org)... 37.252.122.230 Connecting to gmplib.org (gmplib.org)|37.252.122.230|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 2384919 (2,3M) [application/octet-stream] Saving to: ‘gmp-6.1.1.tar.bz2’ gmp-6.1.1.tar.bz2 100%[===================>] 2,27M 16,9KB/s in 1m 59s 2016-08-20 23:22:33 (19,5 KB/s) - ‘gmp-6.1.1.tar.bz2’ saved [2384919/2384919]
$ wget http://www.mpfr.org/mpfr-current/mpfr-3.1.4.tar.bz2 --2016-08-20 23:44:44-- http://www.mpfr.org/mpfr-current/mpfr-3.1.4.tar.bz2 Resolving www.mpfr.org (www.mpfr.org)... 152.81.144.6 Connecting to www.mpfr.org (www.mpfr.org)|152.81.144.6|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1279284 (1,2M) [application/x-bzip2] Saving to: ‘mpfr-3.1.4.tar.bz2’ mpfr-3.1.4.tar.bz2 100%[===================>] 1,22M 216KB/s in 8,3s 2016-08-20 23:44:54 (150 KB/s) - ‘mpfr-3.1.4.tar.bz2’ saved [1279284/1279284]
$ wget ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz --2016-08-20 23:47:09-- ftp://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz => ‘mpc-1.0.3.tar.gz’ Resolving ftp.gnu.org (ftp.gnu.org)... 208.118.235.20, 2001:4830:134:3::b Connecting to ftp.gnu.org (ftp.gnu.org)|208.118.235.20|:21... connected. Logging in as anonymous ... Logged in! ==> SYST ... done. ==> PWD ... done. ==> TYPE I ... done. ==> CWD (1) /gnu/mpc ... done. ==> SIZE mpc-1.0.3.tar.gz ... 669925 ==> PASV ... done. ==> RETR mpc-1.0.3.tar.gz ... done. Length: 669925 (654K) (unauthoritative) mpc-1.0.3.tar.gz 100%[===================>] 654,22K 404KB/s in 1,6s 2016-08-20 23:47:14 (404 KB/s) - ‘mpc-1.0.3.tar.gz’ saved [669925]
$ wget http://gcc.parentingamerica.com/releases/gcc-6.1.0/gcc-6.1.0.tar.bz2 --2016-08-20 23:47:18-- http://gcc.parentingamerica.com/releases/gcc-6.1.0/gcc-6.1.0.tar.bz2 Resolving gcc.parentingamerica.com (gcc.parentingamerica.com)... 70.38.15.129 Connecting to gcc.parentingamerica.com (gcc.parentingamerica.com)|70.38.15.129|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 99267556 (95M) [application/x-bzip2] Saving to: ‘gcc-6.1.0.tar.bz2’ gcc-6.1.0.tar.bz2 100%[===================>] 94,67M 734KB/s in 2m 31s 2016-08-20 23:49:49 (643 KB/s) - ‘gcc-6.1.0.tar.bz2’ saved [99267556/99267556]
Pre-Build Notes
The make tool has the ability to execute independent jobs in parallel. On a multi-core machine this can significantly speed up the build process. The option
make -j N
generates upto N parallel threads. On a quad-core machine the value N = 4 is a good choice.
Install GMP
Install MPFR (Here: version 3.1.4)
tar -xf mpfr-3.1.4.tar.bz2 cd mpfr-3.1.4 ./configure make -j 2 make -j 2 check make install make clean (OPTIONAL) cd ..
Install MPC (Here: version 1.0.3)
tar -xf mpc-1.0.3.tar.gz cd mpc-1.0.3 ./configure --enable-static --disable-shared make -j 2 make -j 2 check make install make clean (OPTIONAL) cd ..
Install gcc (Here: version: 6.1.0)
tar -xf gcc-6.1.0.tar.bz2 mkdir gcc-build cd gcc-build ../gcc-6.1.0/configure --enable-languages=c,c++ make -j 2 make install make clean (OPTIONAL) cd ..
1 Comment
How to Install GMP in Cygwin | Free Online Tutorials
(August 20, 2016 - 6:03 pm)[…] Read first: How to install gcc in Cygwin […]