• 締切済み

Windowsのmakeについて特にpython

wormholeの回答

  • wormhole
  • ベストアンサー率28% (1620/5655)
回答No.4

>”こういうものを提供して使って下さい”と言っている人は方言がないと思っている人たちだと思います。 いえ、方言がないと思ってるわけではなく(そういう人もいるかもしれませんが)、大抵は ・使う人がその人の環境に合わせて書き換える事を前提にしている ・方言があるのは知っているが元から考慮していない ・GNU makeを前提にしている(GNU makeは結構多くのプラットホームに移植されてるので) あたりです。 >またmakeファイルの中身をざっとみてどういうmakeなら動くって判断できるでしょうか。 Makefile中にコメントに書かれていることもありますし、 同梱されているドキュメントに書かれていることもあります。 馴れもあるかもしれませんが私はGNU make用のMakefileなら、GNU make用と大体わかります。

関連するQ&A

  • Windows環境へのmakeについて

    Windowsの開発環境でmakeを使用したいと思います。シェルでフォルダを選んでmakeコマンドを投入するとmakefileの指示に従ってそのフォルダのソースファイルなどを集めて実行ファイルを作成するところまでやってくれるというものです。 Linuxはmakeコマンドが当然ながら普通に利用できるのでその方向に沿ってシェルに依存したmakefileを作成すると思います。Windowsの場合は基本はmakeコマンドがないので、別途、取り寄せるのだと思います。 今の状態で、Windowsのパワーシェルでwhich make -a とすると、Rtools, bcc55, Gow(Gnu on Windows)のmake.exeが出てきます。適切なmakeが最初に呼ばれるように環境を編集してあとはmakefileを編集すればいいということなのでしょうか。Windowsにはnmake, cmakeなどいろんなものもありますが。コンパイラはgfortranとかgccなどのGNUのコンパイラで、これはシェルからコンパイルできるようになっています。Visual studio系はすぐには使いません。 Windowsのシェルでmakeを利用する手順を教えて頂きたいと思います。よろしくお願いします。

  • pythonによるプログラムのコンパイルと実行

    Linux上ではプログラムの実行ファイルの作成は基本はmakeだったと思います。ワンパターンでmakeでMakefileに書いてあることが淡々と進行して実行ファイルができ、それを./abcなどと入力して実行する、そういうパターンだったと思います。make cleanとかおなじみだったと思います。最近はsetup.pyのようなものが用意されてpython setup.pyとすればコンパイルとか実行もそれだけでやってくれます。これは従来のmake系のこととはかなり違いますが、一方でpythonの中でmakeされているということになるのでしょうか。つまり、見た目が違うけれども裏側でやっていることは同じというコンセプトです。この辺をどう理解したらいいのでしょうか。pythonをc++, Javaのようなものと同格のもの捉えるものではないということになるのでしょうか。上記はunix, Linuxの例でしたが、Windows,Macではどういう位置づけになるのでしょうか。pythonを別格と考えるべきものでしょうか。

  • GNU make終了時にコマンドを実行できますか?

    GNU make 4.x(4.1か4.2)を使ってMakefileを実行したとき、そのMakefileが成功しても失敗しても、make終了時に何かを実行させる方法は用意されていますか? "make && コマンド"や"make || コマンド"などの複合コマンドのほか、シェルスクリプト内で"make"とコマンドを連続実行するという方法は除きます。あくまでも"make"単体で実行するものとします。 実際そういうことをしたいというのではなく、"make"実行後、Makefile中で生成した一部の中間ファイルが勝手に削除されるという謎の現象が発生しており、その原因を探りたいです。 Makefile中の実行コマンドにわざとエラーを起こすようなコマンドを入れてみても(例えば存在しない"hogehoge"のようなコマンド)、そのエラーが表示された直後に、"rm XXXX YYYY"(XXXXとYYYYはMakefile内部で生成したファイル名)のようなコマンドが表示されて、実際にそのファイルは生成しているはずなのに消えてしまっています。 上記のエラーを起こすコマンドの前に"ls -l ディレクトリ名"を実行するようにして、エラーを起こす直前に中間ファイルが存在することは確認できています。しかしその後、勝手に"rm"が実行されてそのファイルは消されてしまいます。 よろしくお願いします。

  • メイクファイルからdllを生成するには

    環境はWindowsXP SP3 VisualStudio2008です。 メイクファイルからdllを生成するには dllとlib形式で用いるフリーのライブラリがありまして、 Windows用バイナリとソースが提供されています。 Windows用バイナリの方がリリースが遅いので、 最新のソースの方でdllとlibを生成しようと考えました。 しかし、中身を見ると、 C言語用の「.c」「.h」ファイル以外に以下のファイルが含まれており、 これは何なのかと疑問を持ちました。 aclocal.m4 config.guess config.sub configure configure.in depcomp INSTALL install-sh ltmain.sh Makefile.am Makefile.in missing 調べたところメイクファイルというものだと分かったのですが、 これを用いてどうやってdllを生成すればよいのでしょうか。 参考として、このライブラリの提供サイトを記載しておきます。 http://libharu.org/wiki/Downloads

  • Windows7のコマンドラインでのnmake

    標題のようにWindows7のコマンドラインでnmakeを利用したいと思います。ソースプログラムを作成してコンパイルするということが基本だと思っています。 例えば、wave.fというフォートランのソースをgfortranでコンパイルしてwave.oというオブジェクトファイルを作成し、wave.exeを生成するというような動作をmakefileで実行する実験をしているのですが、エラーとなります。 ○ 以下に test.mak というmakefileを作成しました。いろんなサンプルファイルを参考にしてこのような動作かなと思って作成しました。右の←以下は私はこういうつもりで書いたというものです。 FC = gfortran          ←コンパイラ FFLAGS = -Wall ←オプション objects=wave.o         ←オブジェクト名 # wave: $(objects) $(FC) $(FFLAGS) $(objects) -o wave←コンパイル # wave: $(objects) ← オブジェクトファイルを集めて実行ファイルを作成する。 # clean :       ← はじめからやり直すためにオブジェクトファイルを削除する(クリーンにする)。 rm *.o    ← 削除 ○実行 nmake test.mak あるいは nmake -f test.mak などです。 結果は、NMAKE: fatal error U1073: 'wave.o'のビルドの方法が指定されていません。stop. gfortran -Wall wave.o -o wave というところが、オブジェクトファイルwave.oを使って実行ファイルwaveを作成するという意味なので、wave.fというファイルを探しだしてコンパイルしてwave-oを生成する、という筋書きになっていると思っていました。 昔からmakeが苦手なのでちょっと時間を取って考えているところです。 test.makのどこが間違っているのでしょうか。添削をお願いしたいのですが。 よろしくお願いします。Cのカテゴリの方も十分ご存知かと思ったのでこちらに書きました。

  • win版インテルコンパイラnmakeの括弧について

    linux版インテルコンパイラ(icc)を使っているmakefileをwindows版インテルコンパイラ(icl)で使えるように書きかえているのですが、コマンドプロンプトでどうもnmakeがうまくいきません。 nmakeをしたときのエラーメッセージは、 makefile(22) : fatal error U1001: 構文エラー : 無効な文字 '{' がマクロ中にありま す。 です。makefile22行目は $(PROGRAM) : ${OBJS} $(CC) $(CFLAGS) -o $@ ${OBJS} $(LIBS) なのですが、コマンドプロンプトで{}の括弧は使えないのでしょうか。 またうまくいくようにするにはどうすればよろしいでしょうか。

  • Pythonのプログラムの実行の考え方について

    pythonの教科書のサンプルの実行についてお尋ねします。 テキストのサンプルには普通、インタープリターで書いてあるものと、プログラムをファイルに書き出してそれをコマンドで一気に処理するもの(こちらの方が他の言語の実行に近いか)の2通りがあります。 インタープリター向きに記述されたものをファイルに書き出してpythonコマンドで、インタープリターと同じように実行するにはどのような書き換えが必要になるのでしょうか。結果を出力するときにインタープリターでは配列名を入力するだけでその内容が出力されたりしますが、ファイルではそれができないのでコマンドを指定するとかになると思いますが、他になにかあるでしょうか。 ファイルに書き出したプログラムの実行ですが、Pythonコマンドを実行しても実行形式の出力がないのでコンパイルではないわけですが、これはバッチとかシェルスクリプトと同じような意味になるのでしょうか。1行1行実行していくということですが。とするとインタープリターと同じになるのかなと思うのですが。 実行形式が単体のファイルとして出力されて単体として実行できるというのは従来のプログラム(C,Fortranなど)ですが、Pythonはそれがないわけですね。Ruby, Perlに近いものなのでしょうか。速度が求められる科学技術計算ではライブラリを導入して高速化できるということですが、どの程度かなと思いますが。その中間的なものがJavaなのかなと思いますが(半分実行ファイルみたな)。 たぶんベタな質問と思いますが、よろしくお願いします。

  • make debug で DEBUGをtrue にするには

    $ make debug する時だけ  自己定義したDEBUG変数"$(DEBUG)"をtrue にするには Makefile でどのように記述したらよいのでしょう? 比較的大規模なソースのmake を debugで行いたいのですが、 all と違ってサブのMakefileが中途半端に作られているため、 debugのライブラリが読み込めません。 (パス設定自体が、debug用にはされていないものが一部存在) 大規模なプロジェクト群のMakefileを私ではすべて書き換え切れないため、 変数DEBUGを定義してピンポイントで追加パス(debug用)を 自分で書き込みたいのですが (release と debugで、サブのライブラリがコピーされる ディレクトリが異なり、メインに近いプロジェクトのメイクファイル では、リリース用のパス記述群しかないため) DEBUG= ... debug:: <TAB>DEBUG=true のようにしたいのですが、 (make debugの時だけ、DEBUG=trueにしたいのです) 上記の条件分岐?を Makefileで記述するには どうしたらよいのでしょう? (コマンド記述で変数に代入できないようですし...)

  • LinuxC++ファイルWindowsでのmake

    GPLで、makefile,configure,configure.inなどのある linux用のC++ソースファイル(一部perlあり)を minGWでコンパイルしようとすると perlの方でエラーが出ます。 lang,LC_ALLなどがおかしいと出てきますが どうしたらいいのでしょうか。 Visual C++ Express Editionでは、 nmakeを使おうとすると区切り記号が ないというエラーがでます。 強引にGUI(IDE)上でコンパイルしよう とすると、includeファイルがないと いうエラーが出ます。

  • Python

    シェルスクリプトやバッチファイル作成時には コマンドの実行結果を返り値(終了コード)で 判定したり、次の処理の分岐に使用したりしますが Pythonではどのようにコマンドの実行結果を 判定するのでしょうか。 OSコマンドであれば、os.system("...")とかで判定出来るとの 記事をみたことあるのですが、Pythonコマンド自身の判定は どのようにするのでしょうか。 Ex) Connect('xx','xxx')であるホストに接続し、  接続出来たかどうかの判定をしたい。