Ubuntu のデフォルトでは gcc でコンパイルできないので build-essential を入れておく
先日インストールした、Ubuntu Linux 8.04 LTS で gcc を使って C 言語のプログラムをコンパイルしようとしたら、「stdio.h がありません」、と出た。
いろいろ調べてみたら、デフォルトのインストールのままでは、libc が入っている build-essential のパッケージが入っていないそうなので、追加でインストールしておいた。
ubuntu@ubuntu:~$ gcc test.c test.c:1:19: error: stdio.h: No such file or directory test.c: In function 'main': test.c:5: 警告: incompatible implicit declaration of built-in function 'printf'
エラーはこんな感じ。「stdio.h がありません」、「printf の宣言がわかりません」、などと言っている。
なので、sudo apt-get install build-essential とコマンドを打ってみる。
ubuntu@ubuntu:~$ sudo apt-get install build-essential パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の特別パッケージがインストールされます: dpkg-dev g++ g++-4.2 libc6-dev libstdc++6-4.2-dev libtimedate-perl linux-libc-dev patch 提案パッケージ: debian-keyring g++-multilib g++-4.2-multilib gcc-4.2-doc libstdc++6-4.2-dbg glibc-doc manpages-dev libstdc++6-4.2-doc diff-doc 以下のパッケージが新たにインストールされます: build-essential dpkg-dev g++ g++-4.2 libc6-dev libstdc++6-4.2-dev libtimedate-perl linux-libc-dev patch アップグレード: 0 個、新規インストール: 9 個、削除: 0 個、保留: 3 個。 8701kB のアーカイブを取得する必要があります。 この操作後に追加で 34.3MB のディスク容量が消費されます。 続行しますか [Y/n]? Y
Y キーを押す
...省略 build-essential (11.3ubuntu1) を設定しています ... ubuntu@ubuntu:~$
build-essential パッケージがインストールされた。
ubuntu@ubuntu:~$ gcc test.c ubuntu@ubuntu:~$ ./a.out hello ubuntu@ubuntu:~$
コンパイル & プログラム実行に成功。
うまくネットワークからインストールできない場合 (LiveCD などの場合) は、このようになる。
ubuntu@ubuntu:~$ sudo apt-get install build-essential パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 E: パッケージ build-essential が見つかりません
システム→システム管理→ソフトウェアソースで、「インターネットからダウンロード」の欄のいくつかにチェックが入っているか確認して、「閉じる」を押す。
アプリケーション→追加と削除で、アプリケーションのアップデートを行っておく。
端末を閉じて、もう一度、sudo apt-get install build-essential コマンドを実行すればインストールできた。
ここ 2~3 日で、研究室のマシンや、3年生の後輩のノート PC などがたくさん Ubuntu になったので楽しいな。
研究室で共用の Windows Vista ワークステーションでは Ubuntu の LiveCD が恐ろしく快適に動作するので、Vista を削除して Ubuntu をインストールしようかと思ったけど、絶対に怒られそうなのでやめた。

このブログのフィードを取得


