この授業では、Cプログラムのコンパイルと実行はLinuxで行います。
Cプログラムを書くのはLinuxでもWindowsでも構いませんが、家でも勉強できるように、自分のパソコンのWindowsでもプログラムを作成できるようにしておきましょう。
**開発用ソフトウェアのダウンロードとインストール [#y186713e]
総合情報センターのWindowsにはCプログラムの作成と実行に必要なソフトウェアがインストールされています。
そこで、同じソフトを自分のパソコンのWindowsにもインストールします。
***TeraPad [#j950bd3c]
TeraPadは以下のページからダウンロードできます。
-[[TeraPad:http://www5f.biglobe.ne.jp/~t-susumu/library/tpad.html]]
インストーラー付きのものをダウンロードし、ダウンロードしたファイルをダブル・クリックしてインストールします。
***WinSCP [#y4e9f9ce]
WinSCPは以下のページからダウンロードできます。
-[[WinSCP Downloads:https://winscp.net/eng/download.php]]
''Installation package''をダウンロードし、ダウンロードしたファイルをダブル・クリックしてインストールします。
言語は「日本語」を選択します。
***PuTTY [#mf47f659]
PuTTYを日本語化したICE IV版のPuTTY PRIVATE PATCHESが以下のページからダウンロードできます。
-[[ICE IV + PuTTY:http://ice.hotmint.com/putty/]]
一番新しい日付のものをダウンロードし、ダウンロードしたファイルを右クリックして「全て展開...」を選択し、圧縮されているファイルを展開します。
C:¥Program Filesフォルダーの中に、''PuTTY''という名前のフォルダーを新規に作成します。
64ビット版Windows(C:¥Program Files(x86)というフォルダーが存在するWindows)の場合、展開したフォルダーの中にある''x64''フォルダーの中にある''putty.exe''を作成したPuTTYフォルダーの中にコピーします。
32ビット版Windows(C:¥Program Files(x86)というフォルダーが存在しないWindows) の場合、展開したフォルダーの中にある''putty.exe''を作成したPuTTYフォルダーの中にコピーします。
次に、展開したフォルダーの中にある''ini''フォルダーの中にある''putty.ini''を同じPuTTYフォルダーの中にコピーします。
最後に、展開したフォルダーの中にある''ja-JP''フォルダーの中にある''putty.lng''を同じPuTTYフォルダーの中にコピーします。
*TeraPadをプログラミング用に設定する [#o9244ca2]
TeraPadを起動し、「表示」メニューの「オプション」を選択し、表示されたウィンドウの「表示」タブを選択、「マーク」の中にある「TAB」「半角空白」「全角空白」にチェックを入れて(「改行」と「EOF」はチェックを入れたままで)「OK」ボタンをクリックします。
#ref(./TeraPad1.png,75%)
*TeraPadでCプログラムを作成する [#g0438979]
まずはじめに、TeraPadを起動した状態で、「表示」メニューの「編集モード」から「C/C++」を選択します。
#ref(./TeraPad2.png,75%)
それから、次のように入力します。
#geshi(c){{
#include <stdio.h>
int main(void) {
printf("Hello World!\n");
return 0;
}
}}
日本語版Windowsでは、バックスラッシュ ''\'' の代わりに円記号 ''¥'' を使います。
プログラムを入力したら、「ファイル」メニューの「文字/改行コード指定保存」を選択し、文字コードを「''EUC''」、改行コードを「''LF''」にして「OK」ボタンをクリックします。
Cプログラムのファイルを保存するときは、拡張子を''.c''にします。
ここでは、''hello.c''として保存します。
*WinSCPでCプログラムをLinuxに転送する [#f6d263b5]
WinSCPを起動し、転送プロトコルは「SFTP」のまま、ホスト名に「''luna.isc.chubu.ac.jp''」を入力、ポート番号は「22」のまま、ユーザー名とパスワードはLinuxアカウントとして登録したものを入力し、「保存」ボタンをクリックし、そのまま「OK」ボタンを押して保存します。
(パスワードの保存はおすすめしません。)
左のリストから保存したセッションを選択し、「ログイン」ボタンをクリックします。
初めてログインするときは、不明なサーバーとして警告されますが、「はい」ボタンをクリックしてこのサーバーのホストキーをキャッシュします。
ホストキーをキャッシュしておけば、次からは警告されません。
ログインできると、左側にWindowsのフォルダーが、右側にLinuxサーバーのディレクトリーが表示されます。
Windowsに保存したCプログラムを左側から右側にドラッグ・アンド・ドロップすると、ファイルが転送されます。
*PuTTYでLinuxにログインする [#p43a39da]
PuTTYを起動し、左のカテゴリーから「ウィンドウ」の「変換」を選び、Remote character setのリストから「''EUC-JP''」を選びます。
次に、左のカテゴリーから「セッション」を選び、ホスト名に「''luna.isc.chubu.ac.jp''」を入力、ポート番号は「22」のまま、接続タイプは「SSH」のままにして、セッション一覧から「''Default Settings''」を選択して「保存」ボタンをクリックします。
初めてログインするときは、セキュリティ警告が出ますが、「はい」ボタンをクリックしてPuTTYのキャッシュに鍵を追加します。
ターミナルのウィンドウが表示されたら、ユーザー名とパスワードを入力してログインします。
*Cプログラムをコンパイルし実行する [#rc4f329a]
Linuxにログインしたら、''cd''コマンドを使ってCプログラムを保存したディレクトリーに移動し、''ls''コマンドを使ってCプログラムのファイルがあることを確認します。
たとえば、basic_cというディレクトリーにプログラムを保存しているときは次のようにします。
(luna%はコマンド・プロンプトを表していて、自分では入力しません。)
#geshi(sh){{
luna% cd basic_c
luna% ls
hello.c
}}
現在の作業ディレクトリーを確認するときは''pwd'''コマンドを使います。
#geshi(sh){{
luna% pwd
/usr2/gep00000/ep00000/basic_c
}}
(実際には、ep00000のところは自分のユーザー名になります。)
現在の作業ディレクトリーに転送したCプログラムがあることを確認したら、''cat''コマンドを使ってCプログラムの内容を確認します。
#geshi(sh){{
luna% cat hello.c
#include <stdio.h>
int main(void) {
printf("Hello World!\n");
return 0;
}
}}
Cプログラムが転送したものと同じであることを確認したら、''gcc''コマンドを使ってCプログラムをコンパイルします。
#geshi(sh){{
luna% gcc hello.c
}}
プログラムに間違いがなければ、コンパイルが成功しても何も表示されません。
プログラムに間違いがあると、エラーが表示されます。
プログラムに間違いがあるときは、WindowsのTeraPadで修正し、WinSCPで転送し、コンパイルをやり直します。
以下の文字は区別がつきにくいので、コンパイルエラーの原因になりやすいです。
-日本語変換された空白
-日本語変換された英数字 a
-小文字のエル l と大文字のアイ I と数字のイチ 1
-大文字のオー O と数字のゼロ 0
-ドット . とコンマ ,
-ダブルクオート " とシングルクオートふたつ ''
-カッコ < ( { [ ] } ) >
コンパイルが成功したら、''ls''コマンドを使って''a.out''というファイルができていることを確認します。
#geshi(sh){{
luna% ls
a.out hello.c
}}
最後に、コンパイルしてできた実行ファイルを実行します。
#geshi(sh){{
luna% a.out
Hello World!
}}
これでC言語を勉強する準備ができました!