• 締切済み

makeコマンドの使い方を教えてくれるwebページを教えてください

必要に迫られて、C言語で、実験のデータ解析プログラムを書いています。あまりC言語に詳しくないです。ここで質問してなんとかここまできました。例えば、test.c という1000行以上のプログラムになっていて、読みづらくなってきました。関数の機能というか階層ごとに、複数の *.cファイルに分割したくなってきました。 しかし実際どういう指針で、複数のファイルに分割し、makefileをつくり、makeを使っていくのかわかりません。 できればmakefileと*.cの具体例があって、自分のパソコンのBorland C 無料版でmakeの実例を、実践できるような、web pageを探しています。一回実践すれば、あーそういうことか、とわかると思うのです。 環境は、Windows2000, Borland C v5.5.1 無料版、ThinkPadという環境です。 どうぞよろしくお願い致します。

みんなの回答

回答No.4

makefileと*.cの具体例についての回答ではありませんが、複数のファイルに分割する際の指針としては、私は以下のようなものがあります。  (1)視読性を良くするために、一連の処理ルーチン毎にファイル分割する。  (2)頻繁に書き換えの可能性があるルーチンと、ほぼ書き換えの無いルーチンに分ける。単一ファイルですと全行コンパイルされますが、分割しておきますと書き換えの必要の無いファイルのコンパイルが省略されてコンパイル時間がみじかくなる。  (3)一般的に活用できる関数については一つのファイルにまとめておいて、使いまわしをする。(ライブラリ化しておけばもっと良いような....)   等があります。ご参考に。

  • TMINET
  • ベストアンサー率32% (45/140)
回答No.3

makeはここでしょうか。 http://www.am.ics.keio.ac.jp/members/masahiro/memo/make_no_screen_e/ 関数には呼ぶ側と呼ばれる側という関係がありますよね。 呼ばれる側からどんどん外に出していけばいいんじゃないでしょか。 私的意見ですけど。

回答No.2

make bat で検索してみてね 2kB以上の大きなバッタファイル書ける にゃはは

  • me_no_car
  • ベストアンサー率24% (22/90)
回答No.1

ここに書いてありますよ。

参考URL:
http://macosx2.ncs.gr.jp/~masa/jpn/program/bcc32.htm

関連するQ&A

  • メイクファイルの作り方

    C言語でプログラミングしています。メイクファイルの書き方について教えてください。 ファイルの依存関係は、 *.c から *.o が作成される。 といった関係になっていると思います。これを *.src から *.o が作成される。 といった関係に変えるには、どのように書けばいいのでしょうか。 わたしのプログラミング環境は下記のとおりです。 Windows Xp, Borland C++BuilderX Personal 1.0.0.1786 また、この環境でメイクファイル以外に依存関係を変える方法があれば教えてください。 よろしくお願いします。

  • makeしようとするとcolon expected?

    お世話になっております。 makeしようとすると MAKE Version 5.2 Copyright (c) 1987, 2000 Borland Error makefile 644: Colon expected Error makefile 664: Colon expected *** 2 errors during make *** といったエラーが出ます。これってなんでしょう? よければ解決方法もお願いします。

  • 移植性の高いmakefileの作成

    移植性の高いmakefileの作成 C言語で書かれたソースファイルをmakeツールでビルドしています。 もともとコンパイラとして「Borland C++ Compiler 5.5.1」を使用し、Borland C++ 同ツール付属のmakeツール「MAKE Version 5.2」を使用していました。 makeの基本文法は理解しており、Borlandのコンパイラを使用している間は特に問題ありませんでした。 しかし最近、新たにGCC系列のMinGWという開発環境一式と、補助ツールMSYSを導入し、既存のmakefileをGCCおよびGNUmakeに対応させることにしました。 具体的には、 GMAKEを起動した場合はgccでコンパイルする。 Borland make を起動した場合にはbcc32でコンパイルする。 という切り替えを同一のmakefileで行おうと考えました。 しかし、ここで問題が発生しました。 makeの依存関係部分はborland付属make(以下Bmakeとします)とGNUmakeであまり違いはないのですが、単一のmakefileで対応しようとすると、どうしてもコンパイラオプションやコンパイルコマンドを切り替える部分が必要です。しかし、ifdefやincludeディレクティブに関してはお互いにまったく互換性がなく、片方のmakeで有効なフラグをつかってifdefで分岐しようとしても、もう片方では完全に文法エラーです。 例えば、ifdefやincludeディレクティブは、Bmakeでは先頭に!が必要ですが、GNUmakeには必要ありません。 以下の書籍でポータブルなmakefileの記述に関していろいろ調べたのですが、Bmakeの特殊な文法についての言及がなく、対応策が見つかりません。 様々な環境でビルドされるFireFox3.0のソースコードも参考にしようとmakefileと思われるファイルを全て検索したところ、1769個ほど見つかりました。 その中で!ifdefディレクティブを使用しているのは極わずかで、Makefile.winという名称のものがいくつかあっただけでした。 しかもそれらは最後の方にincludeディレクティブも使っていました。 例えば、MozillaFirefox3.0のソースコードにあるmakefaileの内、firefox-3.0-source.tar\mozilla\dbm\src\Makefile.winは「include <$(DEPTH)/config/rules.mak>等」、という一文がある一方、その他のifなどのディレクティブは頭に!をつけられており、全体としてはBmake(多分ターゲットはMSVC++だと思いますが。)です。 これはBmakeではエラーになるはずなのですが、動作機構は不明です。 また、条件付マクロというテクニックで、ある値が定義されていれば左値を、定義されてなければ右値を使ってマクロ置換するテクニックがあったので、これでディレクティブをマクロ置換してやろうと考えました。しかし、ディレクティブをマクロ定義することはできないようでこれも失敗しています。 #INCLUDE というマクロを定義して、 INCLUDE = $(_GNUMAKE_?include:!include) #マクロをディレクティブ命令として使う $(INCLUDE) testmake.mk それぞれのmake専用makefileを作るのは簡単ですが、新しいプログラムを追加するたびに複数のmakefileを書き直すのは避けたいのです。 長々と書きましたが、解決策として次の2つのいずれかのようなものがあれば教えていただきたいです。 1. ifやincludeディレクティブに代わる、GNUmakeとBmake両方に使えるテクニック。 2. 起動したmakeによって条件分岐、もしくは読み込むファイルを切り替えるテクニック。 よろしくお願いいたします。 開発環境 OS: winXP コンパイラ: 「Borland C++ Builder 6.0」「Borland C++ Compiler 5.5.1」「gcc version 3.4.5 (mingw special)」 make: 「MAKE Version 5.2 (C++ BuilderとC++ Compiler 5.5.1はおなじmakeを使用している模様)」「GNU Make version 3.79.1」 参考文献 1. 「GNU Make 第3版」オライリージャパン、2005年 2. 「C言語逆引き大辞典」秀和システム、2003年 3. 「GNUソフトウェアプログラミング」、?年

  • リンカのコマンドライン

    こんにちは。 C言語の勉強をしているのですが、リンカができなくて困っています。 環境: OS:windows2000 コンパイラ:Borland C++ 5.5 (他に必要な環境があれば、ご教授ください) まず、main()関数と作成した関数をコンパイルします。 Borland C++ 5.5のヘルプを参照して、 「bcc32 main.obj make.obj pro.lib」 これでリンクしようとしたのですが、 「ファイル pro.libが開けません」 とプロンプトに出力されます。 (main()関数→main.obj 作成した関数→make.obj 関数プロトタイプ宣言するファイル→pro.lib)  保存は(main.obj→main.cpp、make.obj→make.cpp、pro.lib→pro.h) と以上のようになっております。 コーディングミスは参考書を散々読み直したので、間違いないと思っております。 ただ、参考書が間違っていたら、取り付く島もありません。 どうぞ、お願いいたします。

  • C言語でコマンド引数にワイルドカードを使うには?サブディレクトリも探索させるには?

    C言語で(下記の環境で) ワイルドカードを使うにはどうしたら良いでしょうか? 現在作成中のプログラムで、program.exe data1012.log とかいう形で処理ができるようになりました。ところで、引数に書いたdata1012.logとかが、300個ぐらいあるとして(あるいは別のdirectoryに更に1000個とか、そういうdirが20個ぐらいあり)これを、program.exe *.logとして、一発で処理させることはできるでしょうか?ワイルドカードの展開と、サブディレクトリの探索どちらかだけでもありがたいです。 どうぞよろしくお願い致します。 環境:Borland C v5.5 無料版, windows2000 (DOS窓), ThinkPadです。

  • AVR Studio4 の使用方法

    AVR Studio4 をダウンロードし C言語でプログラムを作りたいのですが WinAVR もいれ AVR Gccで製作しました。 簡単な テスト サンプルをコピー ビルドすると make: Makefile: No such file or directory make: *** No rule to make target `Makefile'. Stop. Build failed with 2 errors and 0 warnings... が表示され コンパイルできません。  C言語プログラム すべて このようなエラーが出て コンパイルできません。  どのように直せば C言語プログラム受け付けてくれるのでしょうか?

  • Windowsのmakeについて特にpython

    ソースプログラムを実行するための環境を作るmakeについてお尋ねします。Linuxなどでは、OSをインストールした時点で1つ有効なmakeがg++, gcc等で使用することを目指して利用できるようになっていると思います。アプリのインストールでさえmakeですね(./configure, make cleanとかの定型処理)。Windowsだとmakeを提供する元がいっぱいあってプロンプトでwhere make とすると4つぐらい出てきます。そこで質問なのですが、makeという操作は提供元によって全然文法その他の仕様が違うものなのでしょうか。つまり、一般性が高いmakefileというものあるのか?という質問にもなりますが。コマンドプロンプトでmakeをやるとpathの最初に出てくるmakeが呼ばれるようです。Windowsのmakeは一般論では何も言えないでしょうか。大昔,マイクロソフトはnmakeで名前を変えて唯一のものとして確定していたようですが。 さらにpython3.6についてお尋ねしたいと思います。あるプログラムのソースをダウンロードして、広げてみるとソースファイル軍とmakefileがあり、makefileの冒頭に、 ## The present Makefile is a pure configuration file, in which ## you can select compilation options. Compilation dependencies ## are managed automatically through the Python library SConstruct. 上記はmakeの一般論のあとPythonでもライブラリがあれば使えるという風に読める記述があります。そもそもPythonってインタプリターとかソースにpythonコマンドで利用するということであり、実行ファイルは作らないものだと思っていたのでどういうことだろうと思うのですが。makefileをmakeで呼び出して利用するにしてもどのmake.exeでもいいってことではないと思うのですが。pythonで使用するmakefileということですが。 よろしくお願いします。

  • Makeについての質問

    こんにちは、Makotoと申します。 AIX上でCの開発を行っているのですが、 各ディレクトリにMakeFileがあり、 コンパイルのたびに各ディレクトリに移動して Makeを行っているのですが、面倒になってきたので、 以下のような簡単なシェルを作成しました。 cd /目的のディレクトリ make depend make clean make 上記と同じ記述が続く.... 始めの内は、規模が小さかったのでよかったのですが、 新しいプログラムが増えるたびに、同じ記述をするのも あまりきれいではないのでMakeFileを検出して Makeを実行させるといったことはできるのでしょうか?

  • Makefile作成について教えてください!

    C言語で三つのプログラム a.c b.c c.c をMakefileを使ってmakeしたいのですがどのように記述すればいいか教えてください!

  • コマンドプロンプトでコマンドが認識されない

    c初心者なのですが、コマンドプロンプトでコマンドがうまく実行できません。 インストールしたものは、MinGWとmsysです。 環境変数もあまりよくわかっていませんが一応設定しました。 http://www.knatech.info/Dev-mingw-install.html こちらの環境変数の設定を参考に設定しました。 そしてコマンドプロンプトでmakeをうつと make: *** No targets specified and no makefile found. Stop. となり、こちらは認識しているようですが、gccと打つと 'gcc' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 とでてしまいます。 どのようにしたらgccを認識してくれるのでしょうか。 初めてなことだらけで、質問も分かりにくいところがあるかもしれませんがよろしくお願いします。

専門家に質問してみよう