Я создал файл .so и у меня есть файл .c, в котором используются функции из этого .so.
Способ создания .so:
gcc -shared -fPIC -o my_malloc.so my_malloc.c -ldl
Способ компиляциимой файл .c, который использует .so:
gcc hello.c -o hello.o ./my_malloc.so
И затем я запускаю программу, используя:
LD_PRELOAD=./my_malloc.so ./hello.o
Теперь я хочу создать make-файл, чтобы выполнить все эти шаги:
#Compiler to use
CC=gcc
#different flags
CFLAGS= -c -Wall
all: malloc_profiler
malloc_profiler : LD_PRELOAD=./my_malloc.so ./hello.o
$(CC) my_malloc.so hello.o -o malloc_profiler
my_malloc.so : my_malloc.c
$(CC) $(CFLAGS) -shared -fPIC -o my_malloc.so my_malloc.c -ldl
hello.o : hello.c
$(CC) $(CFLAGS) hello.c -o hello.o ./my_malloc.so
clean:
rm -rf *.o
Я получаю следующую ошибку.
make all
makefile:10: *** commands commence before first target. Stop.