タグ

2015年6月2日のブックマーク (4件)

  • 先輩教えて!プログラミングのabc(第1回)---コンパイルとビルドって何が違うの(下)

    ここまでは,基的に実行する前にすべての参照関係を解消するリンクについて解説してきた。これに対し,プログラムの実行時に参照関係を決定するものもある。これを「ダイナミック・リンク」と呼ぶ。この呼び方と対比する場合,通常のリンクを「スタティック・リンク」と呼ぶ(図6[拡大表示])。 Javaにはリンクとは別にコンパイルの後の作業がある。Javaの場合,ソース・コードをコンパイルすると,個々のクラスごとに「.class」という拡張子のファイルを生成する。ちょっとした規模のプログラムでも,その数は膨大になる。これでは他のユーザに配布するのは困難である。そこで配布できる形にまとめた「.jar」というファイルを作るのが普通だ。しかしこのファイルの場合,リンクの作業,すなわち参照関係の結びつけはしていない。 Javaでリンクが発生しないのは,実行時にすべての参照関係を確定するからだ。実行時に名前で呼び出

    先輩教えて!プログラミングのabc(第1回)---コンパイルとビルドって何が違うの(下)
  • 先輩教えて!プログラミングのabc(第1回)---コンパイルとビルドって何が違うの(上)

    「先輩,前から疑問に思ってたんですが,これ何のエラーですか」 「ああ,これはリンクのときのエラー・メッセージだよ」 「リンクって,何ですか」 「え?知らないの。最近のツールは,コンパイルだリンクだって言わないからなぁ・・・。リンクってのは,コンパイルしてできたものを全部つなげることだよ。ビルドすると,コンパイルの後にリンクまでやってるんだ」 「???。全然わかんないです。大体,ビルドとコンパイルって,やってること同じに見えるんですけど。違うんですか?」 「よし,じゃぁちょっと,腰をいれて説明しようか」 Visual StudioやDelphiなどのツールを利用してプログラムを作っていると,見えてこないのが実行モジュールができるまでのプロセスである。当たり前のことだが,ソース・コードは人間が理解できる形でプログラムを表現したものであり,コンピュータは理解できない。だからコンピュータが理解で

    先輩教えて!プログラミングのabc(第1回)---コンパイルとビルドって何が違うの(上)
  • [法大奥山研究室]C言語:13.2. 標準入力:argc, argv, scanf, fscanf

    13.2. 標準入力:argc, argv, scanf, fscanf 次は,標準入力です。標準入力には,コマンドラインからの入力と相手にたずねる場合の2通りがあります。 ■コマンドラインからの入力 int main(int argc, char *argv[]) { /* 体 */ } 変数 argc には,コマンドラインに入力(標準入力)された文字列の個数(argument count)が入ります。また,argv[argc] は NULLポインタ(空ポインタ)であり,argc が 0 より大きい場合,argv[0] にはプログラム名が入ります。[C99, 5.1.2.2.1](argv は「ポインタの配列」です。)例えば, % ./a.out this is a test. と実行した場合,argc = 5 となり,argv[0] には ./a.out,argv[1] には thi

    nekonenene
    nekonenene 2015/06/02
    argc, argv とは何者なのかの話
  • Makefile の書き方 (C 言語) — WTOPIA v1.0 documentation

    makeってなに?¶ ソースファイルを分割して大規模なプログラムを作成していると, コマンドでコンパイルするのが面倒である. また, 一部のソースファイルを書き換えだけなのに全部をコンパイルし直すのは時間の無駄である. そんな問題を解決するのが make である. Makefile と呼ばれるテキストファイルに必要なファイルと各ファイルのコンパイルのコマンド, ファイル間の依存関係を記す. そして, “make” というコマンドを実行するだけで, 自動的にコマンドを実行してコンパイルしてくれる. これだけではスクリプトと大差がないのだが, make は Makefile に記された依存関係に基づいて更新されたファイルの内関連のあるものだけを更新することで, コンパイル時間を短くする. make は特定のプログラミング言語に依存したものではない. C 言語のソースファイルのコンパイルにも使え