打印在当前目录中编译的文件中发现的错误时,有没有办法让gcc使用绝对路径?

例如,当打印错误时,以下内容可以满足我的要求:

g++ -I. -I../../.. /home/some/path/somefile.cpp


但我想通过以下方式实现相同目的:

g++ -I. -I../../.. somefile.cpp


我希望警告和错误的格式如下:

/home/some/path/somefile.cpp:299:52: warning: some warning

最佳答案

无法使用gcc本身来执行此操作,但是使用包装器脚本是微不足道的,该脚本在PATH中/usr/bin之前的目录中以“ gcc”,“ g ++”等安装:



#! /bin/sh
sourcefile="$1"; shift
case "$sourcefile" in
    /*) ;;
    *) sourcefile="$PWD/$sourcefile" ;;
esac
exec "/usr/bin/${0##*/}" "$sourcefile" "$@"


...,前提是您始终将源文件放在编译器调用的第一位(必须调整Makefile)。

09-25 23:03