-no-pie 有什么用?

What is -no-pie used for?

我正在使用 GPROF 开发 Ubuntu 17.10 以使用 C 文件进行一些测试,当我使用 gprof 执行时生成的文件 (gmon.out)、编译和 linking -pg 选项,我得到了一个空的平面和调用图。

但是,我发现这是一个 GCC 错误,我必须使用 -no-pie 选项编译和 link 文件。

我有 GCC 7.2 版本。

此选项如何工作?如果我不使用该选项,为什么图表为空?

该标志告诉 gcc 不要创建 position independent executable (PIE)。 PIE 是启用地址 space 布局随机化 (ASLR) 的预编码。 ASLR 是一项安全功能,每次 运行.

时,内核都会将二进制文件和依赖项加载到虚拟内存的随机位置。