我需要为my.c写一个简单的make文件,等等
make
Run Code Online (Sandbox Code Playgroud)
然后我的程序可以运行
./my
Run Code Online (Sandbox Code Playgroud)
my.c可以通过以下方式编译:
gcc cJ/cJ.c my.c -lcrypto -o my -lm
Run Code Online (Sandbox Code Playgroud)
谢谢我把它放在我的makefile中
all:my
my: cJ.o my.o
gcc cJ.o -lcrypt my.o -o my
cJ.o: cJ/cJ.c
gcc -c cJ/cJ.c
my.o: my.c
gcc -c my.c -lm
Run Code Online (Sandbox Code Playgroud)
请帮忙
好吧,makefile只是一种特殊的脚本.每个都是独一无二的,对于这样简单的任务,这就足够了:
Makefile文件:
CC=gcc
CFLAGS=-lm -lcrypto
SOURCES=my.c cJ/cJ.c
all: my
my: $(SOURCES)
$(CC) -o my $(SOURCES) $(CFLAGS)
Run Code Online (Sandbox Code Playgroud)
稍后您可能希望使用一些其他选项(如通配符%.c)来编译多个文件而无需将其写入.
或者:
CC=gcc
CFLAGS=-lm -lcrypto
MY_SOURCES = my.c cJ/cJ.c
MY_OBJS = $(patsubst %.c,%.o, $(MY_SOURCES))
all: my
%o: %.c
$(CC) $(CFLAGS) -c $<
my: $(MY_OBJS)
$(CC) $(CFLAGS) $^ -o $@
Run Code Online (Sandbox Code Playgroud)
请注意,每个目标后面的行("my:",...)必须以制表符(\ t)开头,而不是空格.