以前の記事で、Windows10のWSLでUbuntuが使えるようにした。そこで、gccやmakeコマンドの開発ツールを使えるようにしたので備忘録を残す。
【Windows10】WSL(Windows Subsystem for Linux)でUbuntuを使う
Windwos10 バージョン1709(Windows10 Fall Creators Update)からは、WSL(Windows Subsystem for Linux)が正式に利用できるようになった。これは、Windows上でUbun...
WSLとはいえ基本的にはUbuntuなので、以前、Ubuntu 16.04 LTS Serverでビルドツールをインストールした時の要領と同じ。
【Ubuntu 16.04 LTS Server】Emacs 25.1をソースからビルドして使う
前記事で、macOSとWindowsでのEmacs環境を構築したが、Ubuntu 16.04 LTS ServerでもEmacsが使えるようにする。尚、Ubuntu 16.04 ではaptからEmacsはインストールできるがv24.5なので...
追記(2018/05/15)
「Ubuntu 18.04」でも動くことを確認。
【Windows10】WSL(Windows Subsystem for Linux)で「Ubuntu 18.04」を使う
以前の記事で、Windows10のWSL(Windows Subsystem for Linux)で「Ubuntu」(16.04LTS相当)を動かした。Microsoftストアを確認すると、先月リリースされた「Ubuntu 18.04 LT...
インストール
下記コマンドを実行して、ビルドツールをインストール。
$ sudo apt install build-essential
下記の画面が表示され、「y」の入力で関連パッケージがインストールされる。
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
binutils cpp cpp-5 dpkg-dev fakeroot g++ g++-5 gcc gcc-5
libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl
libasan2 libatomic1 libc-dev-bin libc6-dev libcc1-0 libcilkrts5 libdpkg-perl
libfakeroot libfile-fcntllock-perl libgcc-5-dev libisl15 libitm1 liblsan0
libmpc3 libmpx0 libquadmath0 libstdc++-5-dev libtsan0 libubsan0
linux-libc-dev make manpages-dev
Suggested packages:
binutils-doc cpp-doc gcc-5-locales debian-keyring g++-multilib
g++-5-multilib gcc-5-doc libstdc++6-5-dbg gcc-multilib autoconf automake
libtool flex bison gdb gcc-doc gcc-5-multilib libgcc1-dbg libgomp1-dbg
libitm1-dbg libatomic1-dbg libasan2-dbg liblsan0-dbg libtsan0-dbg
libubsan0-dbg libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg glibc-doc
libstdc++-5-doc make-doc
The following NEW packages will be installed:
binutils build-essential cpp cpp-5 dpkg-dev fakeroot g++ g++-5 gcc gcc-5
libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl
libasan2 libatomic1 libc-dev-bin libc6-dev libcc1-0 libcilkrts5 libdpkg-perl
libfakeroot libfile-fcntllock-perl libgcc-5-dev libisl15 libitm1 liblsan0
libmpc3 libmpx0 libquadmath0 libstdc++-5-dev libtsan0 libubsan0
linux-libc-dev make manpages-dev
0 upgraded, 35 newly installed, 0 to remove and 0 not upgraded.
Need to get 38.4 MB of archives.
After this operation, 144 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
確認
gccとmakeコマンドが実行できるか確認
$ gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ make --version
GNU Make 4.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
簡単なプログラムをコンパイルし実行してみる
任意のフォルダで、エディターで下記の「sample.c
」ファイルを作成。
$ nano sample.c
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
int i;
for (i=0; i<5; i++) {
printf("%d: test\n", i);
}
exit(0);
}
コンパイルしてみる。
$ gcc -o sample sample.c
「sample
」実行ファイルが生成されので、実行してみる。
$ ./sample
0: test
1: test
2: test
3: test
4: test
nano
エディターは標準でインストールされている。- カレントディレクトリのファイルを実行するには、「
./
」を付ける必要がある。
makeを使ってコンパイルしてみる
エディターで下記の「Makefile
」ファイルを作成。
$ nano Makefile
sample : sample.c
gcc -o $@ $^
clean :
rm -f sample
- コマンド行の前の空白は
<TAB>
文字。
コンパイルする。
$ make
生成したファイルを削除する。
$ make clean
- makeは引数指定がなければ、カレントディレクトリに「
Makefile
」や「makefile
」があればその定義に従って動く。 - この例ではソースファイルが一つなので make の有り難みを感じにくいが、複数のソースや複雑なプロジェクトでは「make」はとても便利で強力なツールである。
「GNU Make 第3版 日本語版(オライリー)」の無料PDF
ソフトウェアのビルドに欠かせないmakeですが、便利な反面機能も豊富。私が読んだ中でお薦めなのが、オライリー「GNU Make 第3版」の本。この本は持ってはいるのですが、分厚い本なので持ち運びも大変で電子版が出たら買いたいと思っていたら、...
Gitからファイルを入手してみる
上記ファイルを「GitHub」に登録しているので、エディタでファイルを作成するのも面倒という方はお試しください(^^)。
任意フォルダで下記コマンドで取得。
$ git clone https://github.com/jr4qpv/gcc_sample
Cloning into 'gcc_sample'...
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 9 (delta 2), reused 9 (delta 2), pack-reused 0
Unpacking objects: 100% (9/9), done
取得したgcc_sample
フォルダに移動して、make
コマンド実行でコンパイル。
$ cd gcc_sample/
$ make
- gitコマンドはUbuntuには標準でインストールされている。
- gitは、プログラムのソースコードなどの履歴を記録・追跡するためのバージョン管理ソフトであるが、とても有用なツールなのでエンジニアのスキルの一つとして使えるようになっておくとよい。
関連記事
【Windows10/WSL Ubuntu, Ubuntu 18.04】Emacs25を使う
以前の記事で、Windows10のWSLでUbuntuが使えるようにした。そこで、Emacsエディターも動くようにしたので備忘録を残す。WSLとはいえ基本的にはUbuntuなので、以前、Ubuntu 16.04 LTS Serverで「Em...
【Ubuntu 20.04/18.04 LTS】gcc, make などの開発ツールをインストールして使う
前の記事で「Ubuntu 18.04 LTS Server」をインストールした。続いて、gccやmakeコマンドの開発ツールを使えるようにしたので備忘録を残す。尚、「Ubuntu 18.04 LTS Desktop」のターミナルでも手順は同...
「組込みソフトウェア開発向けコーディング作法ガイド[C言語版]ESCR」の無料PDF
「組込みソフトウェア開発向けコーディング作法ガイド[C言語版]ESCR1」の改訂版Ver.3.0のPDF本が、IPA(情報処理推進機構)のサイトから入手できる。203ページもある内容で、C言語を記述する上でとても参考になるので紹介する。入手...
コメント