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

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

使用 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
相关文章
|
安全 Unix Linux
Veritas NetBackup 11 for Linux & Windows - 领先的企业备份和恢复解决方案
Veritas NetBackup 11 for Linux & Windows - 领先的企业备份和恢复解决方案
476 0
Veritas NetBackup 11 for Linux & Windows - 领先的企业备份和恢复解决方案
|
6月前
|
安全 Linux iOS开发
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
421 0
Tenable Nessus 10.10 (macOS, Linux, Windows) - 漏洞评估解决方案
|
7月前
|
安全 Linux iOS开发
Tenable Nessus 10.9.3 (macOS, Linux, Windows) - 漏洞评估解决方案
Tenable Nessus 10.9.3 (macOS, Linux, Windows) - 漏洞评估解决方案
666 0
Tenable Nessus 10.9.3 (macOS, Linux, Windows) - 漏洞评估解决方案
|
Linux 数据库 iOS开发
CrossOver 25.1.0 for macOS & Linux - 领先的 Wine 解决方案
CrossOver 25.1.0 for macOS & Linux - 领先的 Wine 解决方案
613 0
|
Linux 编译器 开发工具
【Linux快速入门(三)】Linux与ROS学习之编译基础(Cmake编译)
【Linux快速入门(三)】Linux与ROS学习之编译基础(Cmake编译)
808 2
|
7月前
|
人工智能 机器人 Linux
开源的基于RTOnBoot多核异构框架打造的低成本高性能Linux主控加Ethercat主站解决方案,同步周期可稳定达到125微秒
开源的基于RTOnBoot多核异构框架打造的低成本高性能Linux主控加Ethercat主站解决方案,同步周期可稳定达到125微秒
|
11月前
|
存储 安全 Linux
Nexpose 8.4.1 for Linux & Windows - 领先的漏洞管理解决方案
Nexpose 8.4.1 for Linux & Windows - 领先的漏洞管理解决方案
239 0
Nexpose 8.4.1 for Linux & Windows - 领先的漏洞管理解决方案
|
9月前
|
NoSQL Linux 开发工具
Linux环境基础开发工具的使用(yum、vim、gcc、g++、gdb、make/Makefile)
本文介绍了yum 包管理工具、Vim 编辑器、gcc/g++ 编译器、gdb 调试器、编译原理及 Makefile 的使用,同时还配备了如何使用,以及图解。旨在帮助读者更好地理解和应用这些工具与技术。
460 0
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
Linux iOS开发 开发者
CrossOver 25.0 for macOS & Linux - 领先的 Wine 解决方案
CrossOver 25.0 for macOS & Linux - 领先的 Wine 解决方案
545 5