我有文件X.c和X.ispc,我想使用makefile构建一个共享库X.so。
然而,下面这个简单的makefile只给我提供了:
gcc -m32 -c X.c -o X.c.o
ispc -O2 --arch=x86 --target=sse4-i32x4 X.ispc -o X.ispc_o
gcc -m32 -Wl,-hash-style=sysv -fno-stack-protector -fPIC -nostdlib -shared X.c.o -o X.so最后一步中没有X.ispc_o。我能知道我做错了什么吗?
ISPC=ispc
ISPCFLAGS=-O2 --arch=x86 --target=sse4-i32x4
CC = gcc
CFLAGS = -m32 -Wl,-hash-style=sysv -fno-stack-protector -fPIC -nostdlib -shared
default: so
.PHONY: clean
clean:
/bin/rm -rf objs *.o
obj := $(patsubst %.c, %.so, $(wildcard *.c))
so: $(obj)
%.so: %.c.o %.ispc_o
$(CC) $(CFLAGS) $< -o $@
%.ispc_o: %.ispc
$(ISPC) $(ISPCFLAGS) $< -o $@
%.c.o: %.c
$(CC) -m32 -c $< -o $@发布于 2018-09-06 04:30:32
自动变量$<是第一个先决条件的名称。你想要的是$^。这将扩展为所有先决条件的名称的空格分隔列表。如果您的信息页面已安装
info make 'Automatic Variables'将为您提供一个完整的变量列表,如下所示。
https://stackoverflow.com/questions/52192764
复制相似问题