Re: 問題ID : 9056 Makefileのサンプルコードについて

この質問の投稿一覧へ

なし Re: 問題ID : 9056 Makefileのサンプルコードについて

msg# 1.1.1
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2021-9-11 20:06
20160220  新米   投稿数: 5
arashi1977様御回答ありがとうございます。
おっしゃる通りダブルコーテーションやバックスラがありません。
ファイルはmake generate実行時に作成されるため、作成された段階でこの状態になります。

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

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

長いですが、実際に使用しているMakefileです。
vimの画面上は¥はバックスラで表示されています。
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 <stdio.h>" > 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 <stdio.h>" > 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)

投稿ツリー

  >フォーラム検索へ


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