打印在当前目录中编译的文件中发现的错误时,有没有办法让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)。