1
我想用sed改變一個Makefile變量。我寫了一個小的Makefile來說明我正在嘗試做什麼。 CINCS變量最終將被附加到CFLAGS變量。 CSINCS變量應該保存所有包含文件的路徑,前面沒有「-I」。用sed改變Makefile變量
#SHELL = /bin/sh
SRCS = /usr/local/src/jpeg/jpeg-9b
CINCS = -I/usr/local/src/jpeg/jpeg-9b
CSINCS = $(CINCS) | sed -e "s/-I//g"
check:
@echo 1. $(SRCS)
find $(SRCS) -name "*.c" -print > cscope.files
@echo 2. $(CSINCS)
find '$(CSINCS) -name" "*.h' -print >> cscope.files
cscope -k -b
cat cscope.files | xargs ctags -u
#
我試圖在所有包含路徑的前面刪除 「-I」。在執行時:
$ make -f test check
1. /usr/local/src/jpeg/jpeg-9b
find /usr/local/src/jpeg/jpeg-9b -name "*.c" -print > cscope.files
2. /usr/local/src/jpeg/jpeg-9b
find '-I/usr/local/src/jpeg/jpeg-9b | sed -e "s/-I//g" -name" "*.h' -print >> cscope.files
find: unknown predicate `-I/usr/local/src/jpeg/jpeg-9b | sed -e "s/-I//g" -name" "*.h'
test:8: recipe for target 'check' failed
make: *** [check] Error 1
在位置「2」CSINCS變量看起來是正確的。但與「查找命令擴展這就是問題所在
我知道我可以用CINCS變量與cscope的命令:。
cscope -I $(CINCS)
但我想使用的CTAGS cscope.files我可以生成一個單獨的CSINCS變量,並保持CINCS和CSINCS始終保持同步,只是對正在發生的事情感到好奇。
@rsun,歡迎SO,看[當有人回答我的問題時,我應該怎麼做?](https://stackoverflow.com/help/someone-answers) – Sundeep