-no-pie 有什么用?
What is -no-pie used for?
我正在使用 GPROF 开发 Ubuntu 17.10 以使用 C 文件进行一些测试,当我使用 gprof 执行时生成的文件 (gmon.out
)、编译和 linking -pg 选项,我得到了一个空的平面和调用图。
但是,我发现这是一个 GCC 错误,我必须使用 -no-pie
选项编译和 link 文件。
编译:
gcc -c main.c file-1.c file-2.c -pg [-no-pie]
Link:
gcc -o test main.o file-1.o file-2.o -pg [-no-pie]
我有 GCC 7.2 版本。
此选项如何工作?如果我不使用该选项,为什么图表为空?
该标志告诉 gcc 不要创建 position independent executable (PIE)。 PIE 是启用地址 space 布局随机化 (ASLR) 的预编码。 ASLR 是一项安全功能,每次 运行.
时,内核都会将二进制文件和依赖项加载到虚拟内存的随机位置。
我正在使用 GPROF 开发 Ubuntu 17.10 以使用 C 文件进行一些测试,当我使用 gprof 执行时生成的文件 (gmon.out
)、编译和 linking -pg 选项,我得到了一个空的平面和调用图。
但是,我发现这是一个 GCC 错误,我必须使用 -no-pie
选项编译和 link 文件。
编译:
gcc -c main.c file-1.c file-2.c -pg [-no-pie]
Link:
gcc -o test main.o file-1.o file-2.o -pg [-no-pie]
我有 GCC 7.2 版本。
此选项如何工作?如果我不使用该选项,为什么图表为空?
该标志告诉 gcc 不要创建 position independent executable (PIE)。 PIE 是启用地址 space 布局随机化 (ASLR) 的预编码。 ASLR 是一项安全功能,每次 运行.
时,内核都会将二进制文件和依赖项加载到虚拟内存的随机位置。