【发布时间】:2020-05-08 17:23:55
【问题描述】:
我要做的就是将来自不同源目录的源文件收集到一个文件夹中,然后构建这些 make 文件。在 make clean 之后,我必须运行两次 make 命令来进行构建。
所以我首先运行 make clean,然后运行 make,它会抛出一个错误,提示找不到 -o 文件。但是当 iIrun 再次运行 make 时,构建会通过并生成构建文件。
我的makefile如下所示
.PHONY: dirs all clean
all: dirs $(OBJ_DIR) $(OBJ_FILES)
"$(CC) -rvn fLib.a $(OBJ_FILES)
# clean build target. Remove all files without reporting errors in case they don't exist.
clean:
@rm -rf fLib.a $(OBJ_DIR)
# Build target for creating flat header file folder for SharedTrackerAPI (FLAT_INC_DIR)
# due to too long paths in Windows 7 build
dirs:
@echo 'Making flat source and header folders.'
@mkdir -p $(OBJ_DIR)
@for f in $(SRC_FILES); do cp $$f $(OBJ_DIR); done
@mkdir -p $(FLAT_INC_DIR)
@OLD_CWD=$(CURDIR)
@cd $(FLAT_INC_DIR)
@find $(STA_RADAR_TRACKER_IFACE) -name '*.h' | xargs -i cp -l {} $(FLAT_INC_DIR)
@cd $(OLD_CWD)
$(OBJ_DIR)/%.o: $(OBJ_DIR)/%.cpp
"$(TASKING_CTC_BIN)"/cctc.exe $(CXXFLAGS) -c -o $@ $< $(CC_INCLUDE_PATH)
我做错了什么,我必须在 make clean 之后运行两次。
【问题讨论】:
-
在过去的 48 小时内,您已经三次忽略了有效的简单解决方案,而追求更复杂但无效的解决方案。我可以给你一个解决这个问题的方法,但是如果你不锻炼一些耐心,你会遇到另一个问题。
-
@beta 是的,我正在尝试编写过去 2 天的 makefile。如果您能指出当前 make 文件中的问题,那就太好了。