Path 如何从编译错误中删除路径

Path 如何从编译错误中删除路径,path,compiler-errors,g++,cmake,Path,Compiler Errors,G++,Cmake,使用cmake时,如果存在编译错误,则会输出该错误以及包含该错误的文件的整个路径。这条路径可能很长(见下面的示例),因此经常会导致文字换行,使阅读变得困难 示例输出: /home/nick/projects/projectA/src/environment/base/terrain/base/TestFile.h:21:37: error: ‘TestFile’ does not name a type /home/nick/projects/projectA/src/environment/b

使用cmake时,如果存在编译错误,则会输出该错误以及包含该错误的文件的整个路径。这条路径可能很长(见下面的示例),因此经常会导致文字换行,使阅读变得困难

示例输出:

/home/nick/projects/projectA/src/environment/base/terrain/base/TestFile.h:21:37: error: ‘TestFile’ does not name a type
/home/nick/projects/projectA/src/environment/base/terrain/base/TestFile.h:21:54: error: expected unqualified-id before ‘test’
/home/nick/projects/projectA/src/environment/base/terrain/base/TestFile.h:21:54: error: expected ‘)’ before ‘test’
有没有办法从错误中删除路径? 大概是这样的:

TestFile.h:21:37: error: ‘TestFile’ does not name a type
TestFile.h:21:54: error: expected unqualified-id before ‘test’
TestFile.h:21:54: error: expected ‘)’ before ‘test’

谢谢

我不知道是否可以在cmake中实现,但您始终可以将stderr重定向到stdout,并使用一个简短的sed脚本过滤输出。至少可以筛选公共项目路径

make 2>&1 | sed 's/\/home\/nick\/projects\/projectA\/src\///g'

我不知道在cmake中是否可行,但您可以始终将stderr重定向到stdout,并使用一个简短的sed脚本过滤输出。至少可以筛选公共项目路径

make 2>&1 | sed 's/\/home\/nick\/projects\/projectA\/src\///g'

使用自定义的
规则\u启动\u编译
启动程序。请参阅。使用自定义的
规则\u启动\u编译
启动程序。看见