Là một phần của makefile, tôi muốn tạo phiên bản gỡ lỗi hoặc phát hành của đích.Đặt cảnh báo tệp, ghi đè các lệnh cho mục tiêu
Về mặt chức năng, tất cả mọi thứ đang làm việc Tuy nhiên, tôi đang nhận được cảnh báo khi chạy làm
12 SRC := $(shell echo src/*.cpp)
13 SRC += $(shell echo $(TEST_ROOT)/*.cpp)
14
15 D_OBJECTS = $(SRC:.cpp=.o) # same objects will need to be built differently
16 R_OBJECTS = $(SRC:.cpp=.o) # same objects will need to be built differently
22 all: $(TARGET)
23
25 $(TARGET): $(D_OBJECTS)
26 $(CC) $(D_OBJECTS) -o $(TARGET)
27
28 $(D_OBJECTS) : %.o: %.cpp # ----- run with debug flags
29 $(CC) $(COMMON_FLAGS) $(DEBUG_FLAGS) -c $< -o [email protected]
30
31 release: $(R_OBJECTS)
32 $(CC) $(R_OBJECTS) -o $(TARGET)
33
34 $(R_OBJECTS) : %.o: %.cpp # ----- run with release flags
35 $(CC) $(COMMON_FLAGS) $(RELEASE_FLAGS) -c $< -o [email protected]
Khi tôi make
tôi nhận được phiên bản debug, khi tôi make release
tôi nhận được phiên bản phát hành.
Nhưng tôi cũng nhận được cảnh báo:
Makefile:35: warning: overriding commands for target `src/Timer.o'
Makefile:29: warning: ignoring old commands for target `src/Timer.o'
Makefile:35: warning: overriding commands for target `test/TimerTest.o'
Makefile:29: warning: ignoring old commands for target `test/TimerTest.o'
Với điều này 2 câu hỏi:
- Bất kỳ cách nào để bỏ qua những lời cảnh báo
- Am i làm điều đúng? Cần thay đổi gì?
Bạn có biết cách thực hiện điều đó trong netbeans tự động tạo Makefile không? –
hoặc tạo thư viện nếu bạn có cùng mã cho nhiều tệp nhị phân – baptx