saide_a Ответов: 0

Как автоматически сделать исполняемый файл с источника, находящегося за пределами своей папки


всем привет
У меня есть следующий makefile
TARGET := test.so
DEFINES := 
CC := g++
CFLAGS := -Wall -O3 -c -fpic -I$(INCLUDES)
LDFLAGS := -lrt -ldl -lpthread -s -shared -fpic
SRCS := ./main.cpp \
../../src/test.cpp
INCLUDES =    -I../../inc

###########################
OBJS := $(patsubst %.cpp,%.o,$(SRCS))
all: $(TARGET)
$(TARGET): $(OBJS)
	$(CC) $(LDFLAGS) -o $@ $^
%.o: %.cpp
	$(CC) $(CFLAGS) $(DEFINES) $(INCLUDES) -c $<
clean:
	rm -rf $(TARGET) *.o ./.depend
depend: .depend
.depend: $(SRCS)
	rm -rf ./.depend
	$(CC) $(CFLAGS) $(DEFINES) -MM $^>>./.depend
include .depend
.PHONY: all clean

после запуска я получил ниже ошибки
g++: error: ../../src/test.o: No such file or directory


Что я уже пробовал:

это верно, мой тестовый файл.o построен рядом с основным файлом.o
когда я запустил следующую команду отдельно в терминале my .so, она была успешно построена
g++ -lrt -ldl -lpthread -s -shared -fpic -o test.so main.o test.o 

как можно автоматически реализовать такое поведение?

0 Ответов