Мне нужно написать простую makefile
программу, которая объединяет три файла: mymath.h
mymath.c
и calc.c
, создать статическую и общую библиотеку, связать все и в конце удалить все ненужные файлы
Я уже закончил свою программу, но когда я пытаюсь запустить ./libshared
я получаю ошибку
all: lib_dyn_run lib_stat_run clean
lib_dyn_run: calc.c lib_dyn.so
gcc calc.c -o libshared -L. lib_dyn.so
lib_dyn.so: mymathdyn.o calcdyn.o
gcc -shared -o lib_dyn.so mymathdyn.o calcdyn.o
mymathdyn.o: mymath.c
gcc -fPIC -c mymath.c -o mymathdyn.o
calcdyn.o: calc.c
gcc -fPIC -c calc.c -o calcdyn.o
lib_stat_run: calc.c lib_stat.a
gcc -o libstatic calc.c -L. lib_stat.a
lib_stat.a: mymath.o calc.o
ar rcs lib_stat.a mymath.o calc.o
mymath.o: mymath.c mymath.h
gcc -c mymath.c
calc.o: calc.c mymath.h
gcc -c calc.c
clean:
rm -f all *.o *.a *.so *.gch
Когда я запускаю ./libstatic
все в порядке и я получаю правильный результат
Когда язапустите ./libshared
я получаю ошибку
ошибка при загрузке общих библиотек:?: не удается открыть файл общего объекта: нет такого файла или каталога
Я знаю, что проблема в.так что в «чистой» функции, но как этот необходимый файл, так как он работает так же, как lib_stat_run
, который работает нормально. Я хочу удалить все файлы, кроме исходных файлов и двух .exe файлов