如何在可执行的g ++中更改源路径

时间:2010-02-25 08:24:24

标签: c++

我在编译器机器中编译我的程序。后来我在不同的环境中运行并测试程序。如果我使用-fprofile-arcs编译,则程序会尝试在运行环境中不存在的文件夹中写入文件。这个问题有解决办法吗?

由于

2 个答案:

答案 0 :(得分:1)

继RP的回答之后,我认为this会很有用。

  

如果是目标文件/user/build/foo.o   是用-fprofile-arcs构建的   最终的可执行文件将尝试创建   数据文件/user/build/foo.gcda   在目标系统上运行时。   如果相应的话,这将失败   目录不存在,它是   无法创建它。这可以   克服,例如,设置   环境如   GCOV_PREFIX=/target/run' and GCOV_PREFIX_STRIP = 1' 。这样的设定   将命名数据文件   /target/run/build/foo.gcda。

答案 1 :(得分:0)

Nakiya,根据this “-fprofile弧     添加代码以便检测程序流弧。在执行期间,程序记录每个分支和调用执行的次数以及执行或返回的次数。当编译的程序退出时,它会将此数据保存到每个源文件的名为auxname.gcda的文件中。数据可用于配置文件导向的优化(-franch-probability),或用于测试覆盖率分析(-ftest-coverage)。每个目标文件的auxname都是从输出文件的名称生成的,如果明确指定并且它不是最终的可执行文件,否则它是源文件的基本名称。在这两种情况下都会删除任何后缀(例如输入文件dir / foo.c的foo.gcda,或者指定为-o dir / foo.o的输出文件的dir / foo.gcda)。“