【发布时间】:2011-01-20 04:54:44
【问题描述】:
我有一个makefile(在Linux 上为gmake 开发),我正在尝试移植到MacOS,但似乎sed 不想合作。我所做的是使用GCC 自动生成依赖文件,然后使用sed 稍微调整它们。 makefile的相关部分:
$(OBJ_DIR)/%.d: $(SRC_DIR)/%.cpp
$(CPPC) -MM -MD $< -o $@
sed -i 's|\(.*\)\.o:|$(OBJ_DIR)/\1.o $(OBJ_DIR)/\1.d $(TEST_OBJ_DIR)/\1_utest.o:|' $@
虽然它在 GNU/Linux 下运行没有问题,但在尝试在 MacOS 上构建时出现以下错误:
sed: 1: "test/obj/equipmentConta ...": undefined label 'est/obj/equipmentContainer_utest.d'
sed: 1: "test/obj/dice_utest.d": undefined label 'est/obj/dice_utest.d'
sed: 1: "test/obj/color-string_u ...": undefined label 'est/obj/color-string_utest.d'
看起来sed 正在砍掉一个字符,但我看不到解决方案。
【问题讨论】:
-
可能,BashX 项目可以帮助您解决此类问题。
标签: macos sed gnu inplace-editing