g++编译C++程序遇到 error: ld returned 1 exit status 错误的解决方法

/tmp/ccWem6tZ.o:在函数‘__static_initialization_and_destruction_0(int, int)’中:

p.cpp:(.text+0x651): 截断重寻址至相符: R_X86_64_PC32 针对 .bss

p.cpp:(.text+0x664): 截断重寻址至相符: R_X86_64_PC32 针对 .bss

collect2: error: ld returned 1 exit status

我只是觉得这几句错误都可能有人搜索,所以放在标题中

首先点名解决方法

可能是数组开太大的原因

然后没兴趣的可以改一下程序试试,感兴趣的可以看看我的心酸历程

原本的错误长这样:

/tmp/ccWem6tZ.o:在函数‘__static_initialization_and_destruction_0(int, int)’中:
p.cpp:(.text+0x651):  截断重寻址至相符: R_X86_64_PC32 针对 .bss
p.cpp:(.text+0x664):  截断重寻址至相符: R_X86_64_PC32 针对 .bss
collect2: error: ld returned 1 exit status

在搜索解决方法的过程中也看到有人由于这个错误很绝望,我也没有绝望吧但是真的麻烦了好久。
一看是全部复制粘贴百度,但是什么都搜不到,后来搜这一句p.cpp:(.text+0x651): 截断重寻址至相符: R_X86_64_PC32 针对 .bss结果还是什么有用的东西都没有;
还尝试过这一句函数‘__static_initialization_and_destruction_0(int, int)’知道了原来c程序运行的时候,对于函数会先生成一个这个‘__static_initialization_and_destruction_0(int, int)’来虚拟运行啥的= =
我也搞不清
最后搜ld returned 1 exit status发现有人列出了几个可能的情况:

函数名不对,如printf,scanf什么的打错了
自定义的函数调用时名字写错

可是我寻思这也不是没遇见过啊,报错一般是 not declare 啥的啊。。。
总之检查了一遍没有这种情况;

解决

然后看了另一篇博客说要看collect2: error: ld returned 1 exit status这一句之前的错误是什么,然后我又去看了一下我的错误,搜索p.cpp:(.text+0x651): 截断重寻址至相符: R_X86_64_PC32 针对 .bss没有任何结果,之后又试了一下截断重寻址至相符: R_X86_64_PC32 针对 .bss发现了这唯一篇博客,上面提到了编译内存的问题,然后突然想起来我做上一道题的时候开了一个巨大的数组,这个程序开了两个这么大的数组,然后去吧数量级降低了一位(本来是5e8的八倍的整型数组,改成了5e7的级别)然后就成功运行了

救命博客:https://blog.csdn.net/ai297313/article/details/42711837

这东西搞了我一下午大概三个多小时吧。。。反正研究计算机方面总是遇到各种各样的问题,写个博客也是想让自己记住,还有就是希望尽量能让别人也获得帮助

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ld returned 1 exit status 是一个编译错误,通常在链接阶段出现。它表示链接器(ld)在链接目标文件时遇到错误,并返回了非零的退出状态码。 这个错误可能有多种原因,常见的包括: 1. 缺少定义:在链接阶段,链接器无法找到某个函数或变量的定义。这可能是因为该函数或变量的定义被遗漏或者没有正确引入相关的库文件。 2. 复定义:在链接阶段,链接器发现同一个函数或变量被多次定义。可能是因为同一个函数或变量在多个源文件中被定义了,导致冲突。 3. 依赖问题:在链接阶段,链接器无法解析某个函数或变量的依赖关系。这可能是因为相关的库文件没有正确引入或者顺序不正确。 解决 ld returned 1 exit status 错误方法包括: 1. 检查代码:仔细检查代码,确保所有的函数和变量都有正确的定义和引入。 2. 检查库文件:确保所需的库文件已经正确引入,并且顺序正确。 3. 解决复定义:如果出现了复定义的错误,可以考虑使用头文件和源文件分离的方式来避免复定义。 4. 检查编译选项:检查编译选项是否正确设置,包括链接选项和库文件路径。 5. 查找其他错误信息:ld returned 1 exit status 只是一个概括性的错误信息,可能还有其他详细的错误信息。查找并解决其他错误信息可能有助于解决问题。 希望以上信息对您有帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值