Linux 生成与位置无关的机器代码到C数组?

Linux 生成与位置无关的机器代码到C数组?,linux,gcc,Linux,Gcc,我发现如何通过这个执行机器代码,这很有趣。 但我想知道如何以C数组格式生成位置无关的代码数组 例如,我有一个函数 void fun(const char *ptr, int len) { //doing something, may call base C API, such as malloc/memset/printf } 如何使用gcc或任何其他工具生成目标机器码数组?X86_64或arm64正常

我发现如何通过这个执行机器代码,这很有趣。 但我想知道如何以C数组格式生成位置无关的代码数组

例如,我有一个函数

void fun(const char *ptr, int len)
{
  //doing something, may call base C API, such as malloc/memset/printf
}
如何使用gcc或任何其他工具生成目标机器码数组?X86_64或arm64正常