ビルド: コンパイルとリンクを実行して、ソースコードから実行可能な形式のファイルを作る
コンパイルにはコンパイラ、リンクにはリンカというツールが使われる
リンカへの入力は、オブジェクトファイルとライブラリ
C言語の標準ライブラリはlibc
ライブラリファイルは、/lib, /usr/lib, /lib64, /usr/lib64にある
vagrant@vagrant-ubuntu-trusty-64:~/bitcoin$ ls -lp /lib
total 416
drwxr-xr-x  2 root root   4096 May 14 21:28 apparmor/
lrwxrwxrwx  1 root root     21 May 14 22:21 cpp -> /etc/alternatives/cpp
drwxr-xr-x  4 root root   4096 May 14 21:28 cryptsetup/
drwxr-xr-x  3 root root   4096 May 14 21:28 firmware/
drwxr-xr-x  2 root root   4096 May 14 21:28 hdparm/
drwxr-xr-x  2 root root   4096 May 14 21:27 ifupdown/
drwxr-xr-x  2 root root   4096 May 14 21:27 init/
-rwxr-xr-x  1 root root  71528 Jun 13  2017 klibc-gLiulUM5C1Zpwc25rCxX8UZ6S-s.so
lrwxrwxrwx  1 root root     22 Nov  1  2013 libcryptsetup.so.4 -> libcryptsetup.so.4.5.0
-rw-r–r–  1 root root 145552 Nov  1  2013 libcryptsetup.so.4.5.0
lrwxrwxrwx  1 root root     17 Jan  8  2014 libip4tc.so.0 -> libip4tc.so.0.1.0
-rw-r–r–  1 root root  27392 Jan  8  2014 libip4tc.so.0.1.0
lrwxrwxrwx  1 root root     17 Jan  8  2014 libip6tc.so.0 -> libip6tc.so.0.1.0
-rw-r–r–  1 root root  31520 Jan  8  2014 libip6tc.so.0.1.0
lrwxrwxrwx  1 root root     16 Jan  8  2014 libiptc.so.0 -> libiptc.so.0.0.0
-rw-r–r–  1 root root   5816 Jan  8  2014 libiptc.so.0.0.0
lrwxrwxrwx  1 root root     20 Jan  8  2014 libxtables.so.10 -> libxtables.so.10.0.0
-rw-r–r–  1 root root  47712 Jan  8  2014 libxtables.so.10.0.0
drwxr-xr-x  3 root root   4096 May 14 21:27 lsb/
drwxr-xr-x  2 root root   4096 May 14 21:28 modprobe.d/
drwxr-xr-x  3 root root   4096 May 14 21:28 modules/
drwxr-xr-x  2 root root   4096 May 14 21:28 modules-load.d/
drwxr-xr-x  3 root root   4096 May 14 21:27 plymouth/
drwxr-xr-x  3 root root   4096 May 14 21:29 recovery-mode/
drwxr-xr-x  2 root root   4096 May 14 21:28 resolvconf/
drwxr-xr-x  3 root root   4096 May 14 21:28 systemd/
drwxr-xr-x 15 root root   4096 Mar 22  2014 terminfo/
drwxr-xr-x  4 root root   4096 May 14 22:21 udev/
drwxr-xr-x  2 root root   4096 May 14 21:29 ufw/
drwxr-xr-x  5 root root  12288 May 14 22:21 x86_64-linux-gnu/
drwxr-xr-x  2 root root   4096 May 14 21:28 xtables/
agrant@vagrant-ubuntu-trusty-64:~/bitcoin$ ls -lp /lib64
total 0
lrwxrwxrwx 1 root root 32 Mar 27  2019 ld-linux-x86-64.so.2 -> /lib/x86_64-linux-gnu/ld-2.19.so
ライブラリにはシェアードライブラリ(ダイナミックライブラリ)とスタティックライブラリがある
例えば、拡張子が”.so”はShared Objectの略
ライブラリはオブジェクトファイルをアーカイブした集合体で拡張子は.a
シェアードライブラリは動的に決定される
vagrant@vagrant-ubuntu-trusty-64:~/bitcoin$ ldd /bin/bash
	linux-vdso.so.1 =>  (0x00007ffd3e1ac000)
	libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007fc634203000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fc633fff000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc633c36000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fc63442c000)
ビルドの実態は、コンパイラやリンカのコマンドを順次実行している
makeは主にc言語で記述したプログラムのビルドに使う MySQLなどではCMake
					

