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 をインストールしようかと思ったけど、絶対に怒られそうなのでやめた。

  • ブログSEO対策 : track word 
  • _ 
  • _ 
  •  
  •  

トラックバック

このエントリーのトラックバックURL:
http://thira.plavox.info/cgi-bin/mt5/mt-tb.cgi/106

コメントを投稿






画像の中に見える文字を入力してください。