当前位置: 技术问答>linux和unix
sed和makefile的问题
来源: 互联网 发布时间:2015-09-14
本文导语: 有两个问题: 1.如何把生成 cpp所依靠h的.d文件 的命令集成的makefile中,使用户只要make一下就可以自动生成.d并且包含进makefile里。我现在是分两步,在makefile里作个伪标签depends,然后调用make depends先生成.d再去执行m...
有两个问题:
1.如何把生成 cpp所依靠h的.d文件 的命令集成的makefile中,使用户只要make一下就可以自动生成.d并且包含进makefile里。我现在是分两步,在makefile里作个伪标签depends,然后调用make depends先生成.d再去执行make编译链接程序。我想能不能只直接调用make就可以先自动生成.d文件,然后自动编译链接程序。
2.有如下文件 test.d
111.o: 11.c 11.h
111.h
222.o: 22.c 22.h
222.h
如何使用sed命令把文件变为
../Debug/111.o: 11.c 11.h
111.h
../Debug/222.o: 22.c 22.h
222.h
谢谢给为大侠了!
1.如何把生成 cpp所依靠h的.d文件 的命令集成的makefile中,使用户只要make一下就可以自动生成.d并且包含进makefile里。我现在是分两步,在makefile里作个伪标签depends,然后调用make depends先生成.d再去执行make编译链接程序。我想能不能只直接调用make就可以先自动生成.d文件,然后自动编译链接程序。
2.有如下文件 test.d
111.o: 11.c 11.h
111.h
222.o: 22.c 22.h
222.h
如何使用sed命令把文件变为
../Debug/111.o: 11.c 11.h
111.h
../Debug/222.o: 22.c 22.h
222.h
谢谢给为大侠了!
|
sed 's%^s*(111.o:s*)%../Debug/1%' test.d
|
up
|
不能直接用 sed改,要用临时文件
sed 's%^s*(.*.o:s*)%../Debug/1%g' test.d > temp
cat temp > test.d
rm temp
sed 's%^s*(.*.o:s*)%../Debug/1%g' test.d > temp
cat temp > test.d
rm temp