当我通过发出make cscope
I get database file以及具有相对路径的文件列表来生成Linux内核cscope数据库时.这对我来说是一个问题,因为稍后当我在vim编辑器中从任何目录附加外部内核的数据库但内核我可以轻松搜索特定符号但是我无法打开包含该符号的文件.
我写了下一个bash脚本
#!/bin/bash SNAME="$0" SNAME=${SNAME##*/} function usage() { echo Generate Linux kernel cscope database echo "Usage: $SNAME [PATH]" echo -n "You must provide this script with an ABSOLUTE path of your " echo "kernel's root directory" } if [[ -z "$1" ]]; then usage exit -1 fi KDIR="$1" echo -n "Collecting a list of files... " if find "$KDIR" -path "${KDIR}/arch/*" ! -path "${KDIR}/arch/x86*" -prune -o \ -path "${KDIR}/include/asm-*" \ ! -path "${KDIR}/include/asm-generic*" \ ! -path "${KDIR}/include/asm-x86*" -prune -o \ -path "${KDIR}/tmp*" -prune -o \ -path "${KDIR}/Documentation*" -prune -o \ -path "${KDIR}/scripts*" -prune -o \ -name "*.[chxsS]" -print > cscope.files; then echo done else echo failed fi echo -n "Building cscope database... " cscope -k -qb && echo done || echo failed
我使用绝对路径收集我需要的所有文件(x86/x86_64架构),然后手动成功构建cscope数据库.但我认为必须有一些更简单的方法来实现这一目标.也许一些Makefile的目标就像make cscope_abs
或者make cscope_ext
我还没有找到.
有什么建议?