Linux教程

Linux下gcc编译时出现In function `_start‘:(.text+0x**) :解决方案

本文主要是介绍Linux下gcc编译时出现In function `_start‘:(.text+0x**) :解决方案,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 使用 gcc编译时出现如下问题:
  • 解决方案

使用 gcc编译时出现如下问题:
In function `_start':(.text+0x****): undefined reference to `main'....

例如:

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
 
void test()
{
    char* str = (char*)malloc(100);
    strcpy(str,"hello");
     //free(str);
     if(str != NULL)
     {
          strcpy(str, "world");
     }
     printf("%s",str);
}
int main(int argc, char *argv[])
{
    test();
    return 0;
}

编写对应的makefile文件:(或者直接bash语句编译)

test:test.c
       gcc-g -o test test.c

编译时会出现如下error:

/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/crt1.o: In function `_start':
(.text+0xc): undefined reference to `__libc_csu_fini'
/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/crt1.o: In function `_start':
(.text+0x11): undefined reference to `__libc_csu_init'
collect2: ld returned 1 exit status
make: *** [test] Error 1

解决方案

这是没有使用了共享库,没有链接,添加了-shared选项之后,即可:

gcc -shared -g -o test test.c
这篇关于Linux下gcc编译时出现In function `_start‘:(.text+0x**) :解决方案的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!