- ベストアンサー
makefileの#の説明
- makefileの#記号について説明します。
- makefileでの#記号は、コマンドのテキスト内でのコメントを導入しません。
- #以降の文字はシェルに渡され、その処理方法はシェルに依存します。
- みんなの回答 (3)
- 専門家の回答
関連するQ&A
- makefile内の$$$$の意味
CentOS 6.5 32bitにてmakefileの勉強をしています。 Managing Projects with GNU Make, 3rd Editionの中で、以下のようなmakefileの記載がありました。 ----- %.d: %.c $(CC) -M $(CPPFLAGS) $< > $@.$$$$ ----- 上記の$@.$$$$ですが、$が4つ並ぶことでランダムの数字が実行時に与えられるというのは理解できました。 本やネットでこの$$$$の説明文を探すときは、どういうキーワードで探すのがいいのでしょうか? 3桁や2桁の数字も同じように$を用いて取得できるかなど知りたいと考えています。自分で実際に$@.$$$などした限りではうまく取得できていない現状です。
- ベストアンサー
- その他([技術者向] コンピューター)
- bashの[...], [^...]の名前
Managing Projects with GNU Make, 3rd Editionを読んでいます。 その中でbashの[...], [^...]のことが書かれていました。 この事項を検索で調べる時、どういうキーワードで検索すればよろしいでしょうか? よろしくお願いいたします。
- ベストアンサー
- その他([技術者向] コンピューター)
- make の$(shell ) コマンドが動かない
makefileに、以下のようなshell コマンドを記述しているのですが、端末によって(環境変数やmake、perl などのパスは同一)正常に実行されたり、エラーになったりします。 LIST = $(shell cat $(FILE) | perl -ne 'next if (m/^\#/); print $_;' | sed -n "s/\(.*\) \(.*\)/\1_\2/p" ) これはどうしてでしょうか? ----------- やっていることは、$FILE # comment key0 value0 key1 value1 ... というファイルからコメントを除いて、 key0_value0 key1_value1 ... のような文字列をつくって$LISTに渡しています。 ----------- エラーの場合、以下のメッセージが出ます。 perl -ne の部分がダメのようです。 ----------- Bareword found where operator expected at -e line 1, near "/usr/bin" (Missing operator before bin?) syntax error at -e line 1, near "/usr/bin" Execution of -e aborted due to compilation errors. ----------- なお、 LIST = $(shell cat $(FILE) | sed -n "s/\(.*\) \(.*\)/\1_\2/p") なら、端末によらず動作します。 make -version GNU Make 3.80 perl -version This is perl, v5.8.5 built for x86_64-linux-thread-multi 宜しくお願い致します。
- ベストアンサー
- Linux系OS
- make ~ what it isを教えてください
以下のコメントをネイティプの人からもらいました。 The human changes are what make the future what it is. what make the future what it is. はどういう意味でしょうか?
- ベストアンサー
- 英語
- gnu make empty target
Managing Projects with GNU Make, 3rd Editionを読んでいます。 p.15 Empty targetについてのサンプルでエラーが出ます。 Makefileは以下のとおりです。 ----- prog: size prog.o gcc $(LDFLAGS) -o $@ $^ prog.o: prog.c gcc -c $^ size: prog.o size $^ touch size ----- make prog と実行すると以下のエラーとなります。 ----- gcc -c prog.c size prog.o text data bss dec hex filename 152 0 0 152 98 prog.o touch size gcc -o prog size prog.o size: file not recognized: File truncated make: *** [prog] Error 1 ----- 自分なりの理解では、sizeという空ファイルを作り、そのタイムスタンプをtouchで更新することにより、progをmakeすることができるということだと思います。 ただ、最後に gcc $(LDFLAGS) -o $@ $^ をする時に$^に空ファイルsizeが含まれていて、そのため size: file not recognized: File truncated というエラーを出しているように思います。 そもそものサンプルMakefileが間違っているのでしょうか? あるいはどこかを修正すれば、Empty targetというのが使い物になるのでしょうか?
- ベストアンサー
- C・C++・C#
- 英語の翻訳をお願いします。
英語の翻訳をお願いします。 ネットショップで販売したレンズに対してクレームがあり、値引き交渉の際に来たメールです。 Will you make it $40? I phoned the repair store. The charges for checking only is $25.00, total charges will depends on nature of the fix. I have to take the lens over there to get the estimation, hopefully it will be between $50-60. The labour cost here is very expensive. Please note Paypal also take a percentage out of the refund money. Thank you. よろしくお願いします。
- 締切済み
- 英語
- 「すぐに使えるH8マイコン基盤」でビルドエラー
「すぐに使えるH8マイコン基盤」を買って、 Eclipse , KPIT GNU Tool chain ,Java,Cygwin をインストールし、サンプルプログラム PROG_01_LED を再ビルドしたら次のようなメッセージが表示されてビルドできませんでした。 **** Build of configuration Debug for project PROG_01_LED **** **** WARNING: The "Debug" Configuration may not build **** **** because it uses the "Cygwin GCC" **** **** tool-chain that is unsupported on this system **** **** Attempting to build... **** (Cannot run program "make": Launching failed) どうしたら良いのでしょうか。アドバイスお願いします。
- 締切済み
- C・C++・C#
- オンライン英会話講師からのコメント
フィリピン人女性講師とのオンラインレッスン後、以下の内容のコメントが送られてきたのですが悪い意味と捉えて良いのでしょうか? 普通はレッスン内容についてのフィードバックがされるはずなのですが、私が母親である事に対するコメントが書いてありまったく意図がわかりません。どなたか訳文をつけていただけると助かります。 The natural state of motherhood is unselfishness. When you become a mother, you are no longer the center of your own universe. You relinquish that position to your children. Learning English is one of the best chores nowadays. Focus. Try to make new and interesting sentences.
- ベストアンサー
- 英語
- Makefileについて質問です。あるMakefileをのぞいてみたら
Makefileについて質問です。あるMakefileをのぞいてみたら↓のように(一部ですが)書いてあったのですが、 どういう事をしているのかよく分かりません。 もしよろしければこの部分がどのような事をしているのか教えて頂けますでしょうか? all:; @if [ x$(ARCH) = x ]; then \ echo "Missing environmnet value ARCH"; \ exit; \ else \ for dir in $(SUBDIRS) ; do \ echo working at $$dir; \ (set +x; cd $$dir; $(MAKE) $(MFLAGS) $@ ); \ done; \ fi \は¥で置き換えてください
- 締切済み
- その他([技術者向] コンピューター)
- makefileの書き方
UNIX環境でC言語で作成したプログラムのコンパイルをmakefileを使用して行いたいのですが、 インクルードディレクトリの指定が無視されてしまいます。(CFLAG2の-o $@も) 何が問題なのでしょうか? ファイルの構成としてはとりあえず全て同じディレクトリに格納しています。 (3)だけであればインクルードディレクトリの指定等は問題なく展開され、 オブジェクトができあがります。 (1)(2)でロードモジュールを作成しようとすると質問の問題が発生します。 # CC = cc CFLAGS = -Aa -O -g -Y -D_HPUX_SOURCE CFLAGS2 = -o $@ -c # INCDIR = . SRCDIR = . OBJDIR = . INCLUDE = -I$(INCDIR) OBJS = TestMain.o MODULE = $(OBJDIR)/TestMain all: $(MODULE) ・・・・・(1) $(MODULE): $(OBJS) ・・・・・(2) $(CC) -o $@ $^ $(OBJDIR)/TestMain.o: $(SRCDIR)/TestMain.c $(SRCDIR)/TestCommon.c ・・・・・(3) $(CC) $(INCLUDE)/ $(CFLAGS) $(CFLAGS2) $(SRCDIR)/TestMain.c $(SRCDIR)/TestCommon.c (タブは消えてしまいました)
- ベストアンサー
- C・C++・C#
お礼
詳細な回答ありがとうございます。 「in the text of commands」の意味が分かりました。これにて、色々な文の理解がしやすくなりました。 make自身は#以降をコメントとするのでなく、shellに渡し、shell側ではコメントかどうか判断するということが、お二人の回答をいただきよく理解できました。 ありがとうございました。