ページビューの合計

2011年10月12日水曜日

3Dグラフィックス環境をDebian_lennyに構築

linuxで2D・3Dグラフィックス環境を構築したいと思い、いろいろ調べた結果、「OpenGL」と「GLUT」というグラッフィクスライブラリーを導入することになった。

プログラミング言語はC/C++で進める。

私のMultiboot環境のINSPIRON1501でこれらのソフトを簡単にインストールできたデストリビューションはDebian_lennyだった。

DebianのsynapticはGUIツールで簡単にdebianリポシトリーと通信し各種のソフトの無料ダウンロードが可能だ。さっそく「OpenGL」と「GLUT」を一つ一つ検索する。


OpenGLはSGI社が開発したグラフィックライブラリーで、マイクロソフトもライセンスを得て自社のOSに搭載したため、OSに依存しないソフトとして”業界標準”に登り詰めた。GLUTはこの「OpenGL」のtoolkitにあたるもので「OpenGL」を使いやすくするために開発された。

Debianのsynapticで「OpenGL」と「GLUT」での検索をかけると、「OpenGL」は[freeglut3」に、「GLUT」は「libglui-mesa」という名前でダウンロード、インストールを行うことが出来た。(どのデストリビューションでもこれに近いソフトがありインストール可能だった)

早速、サンプルプログラムでdemoを行う。この中で次の2つの点で困った経験を紹介する。
①デストリビューションでの導入は、C言語ソースプログラムの冒頭に次のインクルード文を挿入すれば普通にコンパイル(ビルド)ができ実行ファイルが出来る。

    #include <GL/glut.h>
   ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

検索で「OpenGL」と「GLUT」という名称のソフトがないので単独で「OpenGL」と「GLUT」のWebページからソースをダウンロードしコンパイルしなければならないのかと困っていた。(aliasやシェルスクリプトを書くことになることが分かり、これを避けたかった)偶然下記のサイトで①でやれば
出来ることにがわかり、さっそくやってみてコンパイルは成功した。

     http://www.wakayama-u.ac.jp/~tokoi/opengl/libglut.html

②freeglutでのコンパイルは、シェルモードで
% gcc -o filename.c -lglut
  でコンパイル出来、emacsでのコンパイルでは make を使う場合
Makefile で
filename : filename.c
      ・・tab・・gcc -o filename.c -lglut filename  
               (filenameは該当のファイル名)

  とつくれば、コンパイルは出来る。
通常のgccコンパイルに、オプションの-glutをつける。 このオプションをつけることが最初は分からず困っていたがこれも上記のサイトが解決してくれ た。大変感謝したい。


2011年9月13日火曜日

linuxプログラミングでのバグとりgcc,make,ddd

UNIXでの統合開発環境emacsでのプログラミング作業環境を引き続き構築する。(windows環境でのプログラミングは多くの方が行っており・・・visual studioの簡易無料版など、UNIXではfreeで、制限のないプログラミングが出来るので)

プログラミングで一番手こずるのがバグ取りだ。UNIXの長い歴史でこの分野の 開発tool が成長している。

バグには3つの種類がある。

①コンパイルエラー:コンパイルの際その言語の文法にそぐわないためバイナリー(機械語)に変換出来ない。
②ランタイムエラー:実行ファイルになってからのエラーで実行時に発生するエラー。
③論理エラー:コードのコンパイルと実行でエラーが発生しなくても、操作の結果が予想と異なるエラー。


emacsには、この3つのバグ取り作業 tool がシームレスにメニューにあり、この3つに対応した作業が出来る。

①にはgccがありメニューのコンパイルをクリックすればコンパイルモードに変身し、コンパイル出来ない箇所を一覧に表示する。バグのある行番号が明示されるのでこれをクリックとソースコード該当箇所に飛びバグ取り作業が行える。emacsを2つ起動して作業すれば迅そくに作業が行える。

②にはGDBがメニューにある。GDBはGCCでコンパイルされたデバック情報を扱うことが出来デバッガーだ。 ただしこれを使う場合、コンパイル時に -g オプションをつける。gdbで使えるデバック情報が実行ファイルに追加される。 (sampleファイルのコンパイル)

    $ gcc -g -o sample sample.c
 
(注意しなければいけないのは通常のコンパイルでは -g は外す。処理が遅くなるので。makeファイルを、test用と2つつくるとよい)

③についてはDDDがある。②の作業をGUIで行うツールで GDB のフロントエンドとなってり、③の作業もこれによって大巾にデバッグ作業が視覚化され、はかどる。
 DDDは各デストリビューションのリポジトリーからGUIツール(yumなど)で簡単にインストール出来た。MULTI_BOOT環境でのプログラミング環境構築がすすむ。

2011年4月13日水曜日

Dell Optiplexで 1TBのHDをXPとWin7で共有

写真・動画編集を行うために、最近1TByteのHDを購入しDELLOptiplexにMultiboot環境を構築したのでその経験を紹介したい。

 

  OptiplexGX20にはXP Proが初期インストールされている。
  購入したWin7Altimateをインストールするところから始める。

1.system commander7で80GbyteのHDに20 Gbyteの空き領域を作
    成する。

2.NTFSでフォーマット

3.Win7新規インストール

4.MBRがWin7で上書きされる

5.System commader7のCDで立ち上げMBRを修復 XPとWin7
    がsystem commader 上で独立して起動出来るようになる。
   (multiboot環境をWin7で行うのであればsystem commaderを削除 
  してもよい。その場合はWin7を立ち上げるとEarlier version of  
   windows と表記される)



6.BUFFALO HD-CE1 1TBをUSB接続

7.Win7を起動しDISK管理・・・マイコンピュータを右クリックしDISK管理
    クリック

8.接続した1TBのHDを認識したか確認・・・disk0とDISK1の表示

9.DISK1をNTFSで1TBをフォーマット

10.Win7ではDISKのパーテションが作れるので画像用に500Gbyte
      映像用に500Gbyteを作成(diskを右クリックし縮小、拡大の操作ま
      たはsystem commaderでパーティションを500Gbyteずつ切り
      win7でNTFSフォーマットしてもよい)


11.これでXPとWin7の両方からアクセス出来る

わたしのこの1年間の写真集をyoutubeに公開しました。

YouTube - 20101107-001わたしの小品『四季』.mpg

2010年11月16日火曜日

コンパイル環境を整える_fedora13,suse11.3,debian lenny


引き続き2台目のinspiron1501のmulti_boot環境を進めdebian lennyをインストール。これで3つのlinuxがインストールされた。

debian lennyのインストールでの注意点は、ブートローダのインストールがアプリケーションの終わったところで行われる。ハードディスク内のパーテションの記号番号が分からない時は、他のブートローダをわざと選択しdebianの入っているパーティションの記号番号をメモして改めてそのパーティションの先頭にブートローダを入れる。
いよいよ、プログラミング環境の構築に入る。エディターはemacs,xemacs,vim,geditを各デストリビューションのアプリケーションの追加作業ーダウンロードとインストールはguiとコマンドラインいずれかで簡単にできる。
まず、日本語環境がどうか調べる。fedora13,suse11.3はいずれも完璧に変換できた。
debianはxemacsは日本語変換ができない。emacs21.4aは次の操作で日本語変換が可能になった。
Options=>Mule=>SetLanguageEnvirement=>Japanese=>Ctrl+\ トグルで変わる

次にコンパイル環境を整える作業に入る。コンパイルはlinuxではshellがその機能を果たす。まず、端末を立ち上げ(ほとんどがbash) gcc,g++と打ち込み反応を待つと、状態が分かる。command not foundと反応した場合は次の順序でで進める。(fedora13の例)

  1. gcc,g++のインストール
    gccはGNUの高機能コンパイラーでfree
  2. どこに入ったかコマンドラインで調べる
    $type gcc  
     gcc is /usr/bin/gcc
    $type g++
    g++ is /usr/bin/g++
    と表示されれば、インストールは成功。
  3. もし bash:command not foundと出力すれば環境変数PATHへ次のように入力、保存
    する。
    ホーム直下の.bash_profileをエディターで開き
    PATH=$PATH:/usr/bin/gcc : /usr/bin/g++:
    と書き加え保存する。
    これで、コンパイルは出来るようになる。
    suse11.3,debian lennyは3の作業は必要なく、すぐコマンド入力後、コンパイル作業が可能だった。

2010年11月6日土曜日

ブートローダをどこに入れるか難しくなったSUSE11.3















引き続きシステムコマンダー9でのマルティブート環境に挑戦する。

SUSEの最新バージョンは11.3で
http://ja.opensuse.org/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89

からダウンロード出来る。inspiron1501に合う   openSUSEー 11.3-DVD-x-86_64.isoをローカルのデスクトップにダウンロード。cdburn xpでdvdに焼く。
システムコマンダー9の手動パーテション操作であらかじめLinuxパーテションを15ギガでつくり、再起動し作ったDVDを挿入。
 初期画面でpci=nomsi をオプションのラインに入れenter keyを押す。各設定をしながらすすみブートローダーの挿入に進むと、前のバージョンでは、高度な設定という別のウィザードがありそこでパーテション設定でSUSEをインストールした先頭パーテションにブートローダーを設定することができたが、今度のバージョンは一覧になり、どこのパーテションをブートローダーをいれるかでとまどう。何回か設定をやりなおして確定、次に進むを選択するとインストール作業が進んだ。
 
 インストール作業が終わり再起動する。最初に立ち上がったのはシステムコマンダー9でなく
SUSEだった。MBRが書き換わっている。初期画面でwindowsを選択しXPを立ち上げ、システムコマンダー9を起動し「システムコマンダーを有効にする」にし、再起動。
 そうすると、システムコマンダーの初期選択画面が出るので、手動でパーテション操作を選択し、
SUSE12.3を入れたパーテションを「boot可能にする作業」をし、再起動。
これでシステムコマンダーの初期画面(OS選択)にSUSE12.3が現れ起動すると無事立ち上がった。
 SUSE12.3は日本語環境が非常によい。プログラムの追加でXemcsをインストールし、立ち上げ日本語入力をすると、きちんと日本語変換ができた。これでプログラミングも軽快になる。