更换入口点功能会导致分段错误

时间:2016-03-21 03:16:28

标签: c gcc compilation

我在C中有以下程序:

axis=1

我想编译它,这样当我运行程序时,它会给我" Fun!"。我使用以下行来编译我的程序:

#include<stdio.h>

int main()
{
  printf("Normal.\n");
  return 0;
}

int fff()
{
  printf("Fun!\n");
  return 0;
}

当我运行名为&#34; deneme&#34;的程序时,我得到了:

gcc deneme.c -e fff -o deneme

正如你所看到的,我得到了我想要的东西,但却不理解&#34;分段错误&#34;部分。是什么原因?

2 个答案:

答案 0 :(得分:1)

您尝试将fff()指定为条目函数,但-e标志替换函数_start,而不是main。您需要将fff的返回类型更改为void,并在函数末尾调用_exit

void fff()
{
    printf("Fun!\n");
    _exit(0);
}

答案 1 :(得分:0)

你可以用

gcc filename.c -o executable-filename