簡體   English   中英

如何在可執行G ++中更改源路徑

[英]How to change source path in executable g++

我在編譯器中編譯程序。 后來我在不同的環境中運行和測試程序。 如果我使用-fprofile-arcs進行編譯,則程序將嘗試在運行環境中不存在的文件夾中寫入文件。 是否有解決此問題的方法?

謝謝

除了RP的回答,我認為將是有用的。

如果目標文件/user/build/foo.o是使用-fprofile-arcs構建的,則最終的可執行文件將在目標系統上運行時嘗試創建數據文件/user/build/foo.gcda。 如果相應的目錄不存在並且無法創建它,它將失敗。 例如,可以通過將環境設置為GCOV_PREFIX=/target/run' and GCOV_PREFIX_STRIP = 1'來解決此問題。 這樣的設置會將數據文件命名為/target/run/build/foo.gcda。

Nakiya,根據 “ -fprofile-arcs添加代碼,以便檢測程序流弧。在執行期間,程序記錄每個分支和調用執行了多少次,執行或返回了多少次。當編譯的程序退出時將每個源文件的數據保存到一個名為auxname.gcda的文件中,該數據可用於配置文件定向優化(-fbranch-probabilities)或測試覆蓋率分析(-ftest-coverage)。從輸出文件的名稱(如果已明確指定,則不是最終可執行文件),否則是源文件的基本名稱。在兩種情況下,都刪除了任何后綴(例如,輸入文件dir / foo.c的foo.gcda,或dir / foo.gcda(指定為-o dir / foo.o的輸出文件)。”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM