2014-03-26 85 views
0

請幫我在gcc編譯器命令gcc編譯器的lib文件未找到錯誤

GCC -c -ID:\ pjtName \ LIB -c -fprofile弧-ftest覆蓋d:\ pjtName \源\ tmp目錄.ada

我想編譯與覆蓋tmp.ada。 adb和廣告文件位於D:\ pjtName \ source文件夾中。我的lib文件位於D:\ pjtName \ lib文件夾中。

問題是gcc沒有在d:\ pjtName \ lib文件夾中找到tmp.ads文件和庫文件。它表明這個命令我需要爲tmp.ada文件

回答

2

GNAT的構建過程是複雜的運行gcov的命令後找不到文件的錯誤

gcc實在太低級了,容易使用的工具;而是使用gnatmake和GNAT項目文件。

您已標記爲gnat-gps,所以我假定您確實擁有GPS。如果是這樣,打開GPS時最好的選擇是選擇使用嚮導創建新項目並從那裏繼續。如果您遇到困難,請使用GPS的附帶幫助或返回此處。

要獲得GPS覆蓋的信息,你去編輯/編輯項目屬性

    阿達標籤
  • ,選擇代碼覆蓋率儀器弧,其中包括-ftest-coverage-fprofile-arcs;
  • 阿達鏈接選項卡,選擇代碼覆蓋率,其中包括-fprofile-generate(你鏈接時的錯誤,否則)。

順便說一句,你提到一個文件tmp.ada;最好堅持.ads的規格和.adb的機構。 GNAT盡力而爲,但是如果您的其他代碼包含with Tmp; GNAT將會尋找。你可以alter this behaviour,但爲什麼打擾,除非你必須爲其他原因!

+0

感謝西蒙·懷特,全球定位系統工具顯示「無法創建文件gcno」錯誤時,我的「pjt.gpr」文件使用gprbuild工具。即使我的gpr文件具有-fprofile-arcs -ftest-coverage作爲默認開關,它不會生成覆蓋文件。所以,我選擇了gcc工具爲我的ada源文件創建.gcda和.gcno文件。 – Kumar

+0

增加了一些有關GPS的覆蓋範圍。 –

+0

我不明白爲什麼會說「無法生成gcno文件」!對我而言,程序在沒有'-fprofile-generate'的情況下鏈接失敗。 –

0

如上所述,不要使用gcc。

我通常使用gnat compile filename.adb然後用gnat bind filename.ali,然後gnat link filename.ali -Lexternaldirectory -lexternallib