如何使用GCC PGO与源代码在不同的文件夹?

bcs8qyzn  于 2022-11-13  发布在  Go
关注(0)|答案(1)|浏览(192)

我已经从A/src编译了PGO-instrumented build并收集了概要文件。现在我想在从B/src编译时应用这个概要文件。这可能吗?GCC抱怨缺少概要文件,因为绝对路径是不同的,但是代码是完全相同的。

i2byvkas

i2byvkas1#

请参阅-fprofile-prefix-path上的文档:
-fprofile-prefix-path=path
此选项可以与profile-generate=profile_dir和profile-use=profile_dir一起使用,以通知GCC生成的源代码树的基目录在哪里。默认情况下,profile_dir将包含已生成项目中所有目标文件的绝对路径已损坏的文件。当用于生成检测的二进制文件的目录与用于生成使用配置文件反馈优化的二进制文件的目录不同时,这是不可取的,因为在优化构建期间将找不到配置文件数据。在这样的设置中,-fprofile-prefix-path=path(路径指向构建的基目录)可用于去除路径中不相关的部分,并保留所有相对于主构建目录的文件名。
因此,当从A/构建时,将前缀路径设置为A/,对于B/也是如此。

相关问题