hello_Makefile_c++

2023-11-16

1、错误:

hello.o: In function `_start':

(.text+0x0): multiple definition of `_start'

/usr/lib/gcc/i486-linux-gnu/4.4.3/../../../../lib/crt1.o:(.text+0x0): first defined here

hello.o:(.rodata+0x0): multiple definition of `_fp_hw'

/usr/lib/gcc/i486-linux-gnu/4.4.3/../../../../lib/crt1.o:(.rodata+0x0): first defined here

hello.o: In function `_fini':

(.fini+0x0): multiple definition of `_fini'

/usr/lib/gcc/i486-linux-gnu/4.4.3/../../../../lib/crti.o:(.fini+0x0): first defined here

hello.o:(.rodata+0x4): multiple definition of `_IO_stdin_used'

/usr/lib/gcc/i486-linux-gnu/4.4.3/../../../../lib/crt1.o:(.rodata.cst4+0x0): first defined here

hello.o: In function `__data_start':

(.data+0x0): multiple definition of `__data_start'

/usr/lib/gcc/i486-linux-gnu/4.4.3/../../../../lib/crt1.o:(.data+0x0): first defined here

hello.o: In function `__data_start':

(.data+0x4): multiple definition of `__dso_handle'

/usr/lib/gcc/i486-linux-gnu/4.4.3/crtbegin.o:(.data+0x0): first defined here

hello.o: In function `_init':

(.init+0x0): multiple definition of `_init'

/usr/lib/gcc/i486-linux-gnu/4.4.3/../../../../lib/crti.o:(.init+0x0): first defined here

/usr/lib/gcc/i486-linux-gnu/4.4.3/crtend.o:(.dtors+0x0): multiple definition of `__DTOR_END__'

hello.o:(.dtors+0x4): first defined here

/usr/bin/ld: warning: Cannot create .eh_frame_hdr section, --eh-frame-hdr ignored.

/usr/bin/ld: error in hello.o(.eh_frame); no .eh_frame_hdr table will be created.

collect2: ld returned 1 exit status

make: *** [hello] Error 1

原因:

经测试:单独编译hello.cpp的时候不会报上面的错误,而使用Makefile时会报出上面的错误,说明是Makefile的原因;

原版的Makefile是:

hello:hello.o

        g++ -o hello hello.o

hello.o:hello.cpp hello.h

        g++ -o hello.o hello.cpp

clean:

        rm hello.o hello a.out

而修改后的Makefile为:

hello:hello.o

        g++ -o hello hello.o

hello.o:hello.cpp hello.h

        g++ -c hello.cpp

clean:

        rm hello.o hello a.out

导致的原因是:参数-c是生成.o文件的(只编译,不连接),-o是确定生成文件名称;

感悟:

Makefile对文件的编译是分步进行的:

a)         –c(只编译不连接);

b)        连接,生成执行文件;

2、错误:

/usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status

原因:一般出现这个问题是main打错了,或者没有写main,或者main被其他子函数包含了,注意检查下就好,我之前粗心,出现过这个问题,但是其他的文件gcc编译链接可以通过,就这个不能。

转载于:https://www.cnblogs.com/Joker714/p/4982160.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

hello_Makefile_c++ 的相关文章

  • R语言学习笔记:分析学生的考试成绩

    孩子上初中时拿到过全年级一次考试所有科目的考试成绩表 正好可以用于R语言的统计分析学习 为了不泄漏孩子的姓名 就用学号代替了 感兴趣可以下载测试数据进行练习 num class chn math eng phy chem politics
  • android通过JNI用C/C++创建本地文件

    通过jni在本地创建文件 1 在android studio创建基本的jni工程 并且在APP界面成功显示 Hello from C 不会的可以看android studio使用jni 2 在native lib cpp文件中创建文件 为了
  • Qt5学习之路(vs2012下创建一个QT应用程序)2013-10-14

    刚开始学习QT在网上找的资料基本都是使用QT Create进行开发的 VS下开发的学习资料感觉很少很难找的到 视频教程也基本没看到过貌似 因为我们研发中心是使用MFC进行开发开发工具是VS2010 使用QT开发的话基本我们不会再使用QT C
  • 解决“17: 错误:程序中有游离的‘\240’,\302’

    参考链接 https blog csdn net asuphy article details 54602426 执行如下命令即可 sed i s o240 o302 g dy haikang test cpp
  • c/c++入门教程 - 1.基础c/c++ - 1.0 Visual Studio 2019安装环境搭建

    推荐视频课程 https www bilibili com video BV1et411b73Z p 2 已投币三连 b站果然是个学习的网站 本来是想在linux环境下运行QT 于是先学了几个月linux嵌入式驱动开发 后来发现太底层了 与
  • JNA模拟复杂的C类型——Java映射char*、int*、float*、double*

    文章目录 引言 Java Native Type Conversions Java和C基本类型指针对应关系 Pointer的具体用法 引言 最近项目在用Java调用C写的一些三方库 没办法直接调 用Java封装一下C的接口 这就少不了要用到
  • 使用QZXing生成并解析二维码

    QZxing 是对 zxing 的一个封装 用于在 Qt 程序中加入条形码和二维码识别的功能 这里就讲讲如何编译和使用这个库 前几年 QZXing 的代码是放到 sourceforge net 上的 现在迁移到了 github com 所以
  • 经典面试题之new和malloc的区别

    new和malloc的区别是C C 一道经典的面试题 我也遇到过几次 回答的都不是很好 今天特意整理了一下 0 属性 new delete是C 关键字 需要编译器支持 malloc free是库函数 需要头文件支持 1 参数 使用new操作
  • GDAL多光谱与全色图像融合简单使用

    目录 简述 C 代码 效果对比 GDAL融合效果和原始多光谱波段对比 GDAL融合效果和原始全色波段对比 ARCGIS融合效果与原始全色和多光谱对比 GDAL融合效果与ArcGIS融合效果对比 简述 最近在GDAL的代码中看见了gdalpa
  • C++中的RTTI

    文章目录 dynamic cast运算符 指针类型的dynamic cast 引用类型的dynamic cast typeid运算符 使用RTTI type info类 参考资料 RTTI Runtime Type Information
  • floor(),ceil()函数

    地板 天花板函数 均包含在math h中 意思分别为 返回不大于形参的最小整数和不小于形参的最大整数 include
  • R----dplyr包介绍学习

    dplyr包 plyr包的替代者 专门面对数据框 将ddplyr转变为更易用的接口 gt 来自dplyr包的管道函数 其作用是将前一步的结果直接传参给下一步的函数 从而省略了中间的赋值步骤 可以大量减少内存中的对象 节省内存 可惜的是应用范
  • lua和测试(一)

    lua做为一门高级语言 在游戏产业运用到机会越来越多了 测试掌握几门脚本语言也有一定的重要性 以下对于lua组合输入做出一些引导 测试需要掌握的关于返回数值 主要用到布尔类 前言的指引 lua的语法比较简单和清晰 学过c语言的可以很好的掌握
  • stat 函数解析

    stat 函数的简单使用 stat 函数是用来获取文件的各种属性的一个linux下的常用API函数 函数原型为int stat const char path struct stat buf stat定义如下 struct stat dev
  • 一个简单的参数帮助框架,c实现

    文章目录 具体实现如下 include
  • 虚函数不能声明为static

    虚函数申明为static报错 class Foo public Foo default static virtual Foo int main Foo foo return 0 main cpp 10 25 error member Foo
  • C/C++编程中的算法实现技巧与案例分析

    C C 编程语言因其高效 灵活和底层的特性 被广大开发者用于实现各种复杂算法 本文将通过10个具体的算法案例 详细探讨C C 在算法实现中的技巧和应用 一 冒泡排序 Bubble Sort 冒泡排序 Bubble Sort 是一种简单的排序
  • C 语言运算符详解

    C 语言中的运算符 运算符用于对变量和值进行操作 在下面的示例中 我们使用 运算符将两个值相加 int myNum 100 50 虽然 运算符通常用于将两个值相加 就像上面的示例一样 它还可以用于将变量和值相加 或者将变量和另一个变量相加
  • C++ 中 const 和 constexpr 关键字解析:常量、函数和指针

    很多 C 的初学者看到 const 这个关键字的第一反应都是一头雾水 主要是因为 const 可 以出现在很多的位置 以及后面加入的 constexpr 更是常常感到困惑 今天就为大家一一解释出现它们的含义和以及作用 const 关键字 c
  • C++实现函数重载的原理

    一 函数重载的概念 C 中允许存在同名函数 但要求函数参数的类型 个数不同 这些同名函数就称为函数的重载 void func int a int b cout lt lt func int a int b lt lt endl void f

随机推荐

  • mysql alter的用法--修改表,字段等信息

    一 修改表信息 1 修改表名 修改表名为studen1 alter table student rename to student1 2 修改表注释 修改表注释 alter table student comment 学生表 二 修改字段信
  • Python-字典合并

    方法1 使用update方法 第二个参数合并第一个参数 def merge dict1 dict2 return dict2 update dict1 两个字典 dict1 a 10 b 8 dict2 d 6 c 4 返回None pri
  • Python入门必背代码大全

    前言 Python作为一门简洁而强大的编程语言 广泛应用于数据分析 Web开发 人工智能等领域 本文将为您整理一份Python入门必背的代码大全 帮助您掌握常用的Python代码片段 快速入门并提升编程技能 一 基本语法和数据类型操作 打印
  • C++的类与对象

    类的概念 类是将不同类型的数据和处理这些数据的操作封装在一起的一个复合数据类型 类有两类成员 一类是数据成员 用于表示实体抽象的属性 另一类是成员函数 用来描述实体抽象的行为 类作为一种数据类型 在定义的时候是不分配内存的 类通过将数据和对
  • JVM OOM问题排查与解决思路

    OOM原因 1 堆溢出 报错信息 java lang OutOfMemoryError Java heap space 代码中可能存在大对象分配 无法获得足够的内存分配 可能发生内存泄露 导致内存被无效占用以至于耗尽 2 永久代 元空间溢出
  • Blender图解教程:新手入门练习1

    多边形建模命令仅在编辑模式下可用 一 台灯 成果展示 步骤 1 打开Blender 新建 常规 文件 2 制作台灯底座 选择该立方体的上面 快捷键 3 然后使用快捷键 G 再按快捷键 Z 使其沿Z轴移动 移动鼠标 调整台灯底座到合适的高度
  • 电脑提示d3dcompiler_47.dll丢失怎么解决?d3dcompiler_47.dll缺失修复方法

    d3dcompiler 47 dll文件是Windows系统重要的组件 电脑一出现缺失或者损坏的情况下 电脑很多游戏跟软件都无法打开运行 小编今天就把修复教程分享给大家 首先是打开电脑浏览器后在顶部输入 dll修复文件 site 按下键盘的
  • 两个有序链表序列的合并(省略函数实现)

    浙大版 数据结构 第2版 题目集 习题2 5 两个有序链表序列的合并 include
  • 华为OD机试 Python 需要打开多少监控器

    描述 想象一下 你在一个长方形停车场 每个车位正上方都有一个监控器 只有当车位上或其周围 前 后 左 右 有车时 这个监控器才会开启 请根据给定的停车场车辆分布 计算需要开启的监控器数量 输入 第一行 两个整数 分别表示停车场的长和宽 1
  • C++学习(六十三)指针数组和数组指针

    指针数组 类似整型数组 浮点型数组 指数组里的元素为指针 define ARRAY LEN 100 char myStrPtr ARRAY LEN char指针的数组 墨菲定律的几条推论 会出错的事 总会出错 世上没有绝对正确的事情 每个解
  • Hashmap源码详解

    在开发中的对于数据结构如何选 我们要知道各个数据结构的优缺点 数组 采用一段连续的存储单元来存储数据 对于指定下标的查找 时间复杂度为O 1 但在数组中间以及头部插入数据时 需要复制移动后面的元素O n 优点 查找快 缺点插入慢 链表 一种
  • xmind怎么在左边创建_XMind如何调整分支主题位置?XMind分支主题任意移动方法

    如何利用xmind制作自己的思维导图 你好 建议你可以这样试试看 打开画图工具点击上方栏目 思维导图 在跳转专的页面点击 立即属体验 进入在线绘制界面 在画布的四周有很多的工具栏 这些在绘制的过程中都是可以使用的 首先 将中心主题进行确立
  • 使用 docker 搭建 clickhouse 集群

    转载来自 blog miaoji io p 57 写在前面 你好 欢迎浏览我的博客 这篇文章将记录我使用docker搭建clickhouse集群的过程 工具准备 服务器准备 这里我们准备三台服务器 分别配置hostname为server01
  • SpringBoot中静态资源文件的存放位置

    1 静态资源路径是指系统可以直接访问的路径 且路径下的所有文件均可被用户 通过浏览器直接读取 2 在Springboot中默认的静态资源路径有 classpath META INF resources classpath resources
  • 微信小程序——组件库

    文章目录 WeUI ColorUI LinUI echarts for weixin WeUI WeUI是微信官方设计团队为微信Web开发量身打造的一个UI样式库 可以理解为一种类似于Bootstrap的前端UI库 使用WeUI来编写小程序
  • rosrun 和 roslaunch 的时候 TAB 的自动补全出现问题

    rosrun 和 roslaunch 的时候 TAB 的自动补全出现问题 rospack Warning error while crawling home sun boost filesystem status Permission de
  • javaRebel(jRebel)使用手记

    想必大家对项目开发中 调试类文件修改时 容器自动重新加载漫长的过程早已厌倦 我今天闲来无事 于是 想试试javaRebel jRebel 这个东西 javaRebel jRebel 现在是收费软件 不过在网上可以下载到确解版的 在网上查了一
  • please remember me(auto login)

    记住我 用户自动登录的实现 auto login 一 什么是用户自动登录 对于我们的网站向已注册用户提供某些专门的服务 比如网上购物 在线下载 收费浏览等等 就会要求用户在使用这些服务之前进入登录页面 输入用户名和密码 并进行验证 如果用户
  • 搜索引擎(简化版)-分析总结

    整体思路 访问网址 进入首页 输入搜索内容 HTTP服务器接收到HTTP响应 解析取出其中的搜索内容 将搜索内容传输给CGI程序 既搜索客户端 由搜索客户端将搜索内容构造成一个请求 发送给搜索服务器 搜索服务器将请求解析 将搜索内容进行分词
  • hello_Makefile_c++

    1 错误 hello o In function start text 0x0 multiple definition of start usr lib gcc i486 linux gnu 4 4 3 lib crt1 o text 0x