Я пишу некоторый код c для класса и у меня возникают проблемы с компилятором, который необходимо сделать в файле make, при запуске он всегда выдает ошибку
usr/bin/ld: main.o: relocation R_X86_64_32S against symbol "integrand" can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: integration.o: relocation R_X86_64_32S against ".rodata" can not be used when making a shared object; recompile with -fPIC
Я пытался изменить make-файл несколькими способами, чтобы исправить эту ошибку в системе Linux, но, увы, это все еще безрезультатно.
all: main.o integration.o libintegration.so
gcc -fPIC main.o integration.o libintegration.so -o target_bin
libintegration.so: main.o integration.o
gcc main.o integration.o -shared -o libintegration.so
main.o: main.c integration.h
gcc -I . -c main.c
integration.o: integration.c integration.h
gcc -I . -c integration.c
clean:
rm -rf *.o *.so
rm target_bin
Спасибо за любую помощь, которую вы можете оказать