2011-04-12 27 views
2

當在當前目錄中編譯的文件中發現打印錯誤時,是否有辦法讓gcc使用絕對路徑?在pwd中編譯文件時,gcc/g ++使用絕對路徑作爲警告

例如,下面做什麼,我想,當打印錯誤:

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

,但我想達到同樣的東西,如:

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

我要警告和錯誤要格式化的東西像:

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

回答

0

有沒有辦法與gcc本身做到這一點,但它是triv用包裝腳本,安裝在系統的路徑「海灣合作委員會」,「G ++」等目錄中的/usr/bin前IAL:

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

...只要你始終把源文件中第一你的編譯器調用(你必須調整你的Makefiles)。

+0

如果$ 1是一個絕對路徑,或者$ 1是「-I」,這會非常糟糕。 (因爲它是在問題中)。 – 2011-04-13 02:33:26

+0

我的確說過,你必須始終把源文件放在第一位。不錯,1美元左右是絕對路徑,但我會解決這個問題。 – zwol 2011-04-13 02:46:51