レス
前レス元トピ次レス
タイトル
Re: 問題ID : 9056 Makefileのサンプルコードについて
フォーラム
最強WEB問題集LinuC/LPIC Lv2 201
投稿ユーザ(投稿日)
(2021/9/11)
本文
arashi1977様御回答ありがとうございます。
おっしゃる通りダブルコーテーションやバックスラがありません。
ファイルはmake generate実行時に作成されるため、作成された段階でこの状態になります。

c言語については疎いので内容は分かっていないのですがbashのように「バックスラを文字列として扱いたい場合はバックスラバックスラにする」みたいなルールがあるのでしょうか?

ファイル src_a.c
[code]
include
int function_a() {
fprintf(stdout, %sn, This line comes from src_a.c!);
return 0;
}
[/code]
サンプルコード該当部分?
[code]
@echo " fprintf(stdout, "%s\n", "This line comes from src_a.c!");" >> src_a.c
[/code]
ファイル src_b.c
[code]
#include
#include src_b.h
int function_b() {
fprintf(stdout, %sn, FUNCTION_B_STRINGS);
return 0;
} [/code]
サンプルコード該当部分?
[code]@echo " fprintf(stdout, "%s\n", FUNCTION_B_STRINGS);" >> src_b.c[/code]

長いですが、実際に使用しているMakefileです。
vimの画面上は¥はバックスラで表示されています。
[code]
BJS = src_a.o src_b.o src_main.o
CC = gcc
PROGRAM = maketest.bin

DESTDIR = $(HOME)/bin
CHK_INSTALL = .installed

.SUFFIXES: .c .o

$(PROGRAM): $(OBJS)
$(CC) -o $(PROGRAM) $^

.c .o:
$(CC) -c $<

install: $(PROGRAM)
mkdir -p $(DESTDIR)
install $(PROGRAM) $(DESTDIR)
touch $(CHK_INSTALL)

uninstall: $(CHK_INSTALL)
rm $(DESTDIR)/$(PROGRAM)
rm $(CHK_INSTALL)

.PHONY: clean generate clean-gen

generate:
@echo Generate src_main.c
@echo "void main()" { > src_main.c
@echo " function_a();" >> src_main.c
@echo " function_b();" >> src_main.c
@echo } >> src_main.c

@echo Generate src_a.c
@echo "#include " > src_a.c
@echo "int function_a()" { >> src_a.c
@echo " fprintf(stdout, "%s\n", "This line comes from src_a.c!");" >> src_a.c
@echo " return 0;" >> src_a.c
@echo } >> src_a.c

@echo Generate src_b.c
@echo "#include " > src_b.c
@echo "#include "src_b.h"" >> src_b.c
@echo "int function_b()" { >> src_b.c
@echo " fprintf(stdout, "%s\n", FUNCTION_B_STRINGS);" >> src_b.c
@echo " return 0;" >> src_b.c
@echo } >> src_b.c

@echo Generate src_b.h
@echo "#define FUNCTION_B_STRINGS "This line comes from src_b.h"" > src_b.h

clean-gen:
$(RM) src_main.c src_a.c src_b.c src_b.h

clean:
$(RM) $(PROGRAM) $(OBJS)
[/code]

レス一覧

前レス元トピ次レス



Copyright (c) 2010
Ping-t All rights reserved.