QT报collect2:ld returned 1 exit status原因

原文链接:https://blog.csdn.net/u014546553/article/details/78781547
出现collect2:ld returned 1 exit status错误的原因,大概分为以下三种情况:

1、编译成功的例子在后台执行,有时一闪而过,如果再次build ,则会提示上述错误。

解决方法:打开任务管理器,找到相应的exe进程,关闭即可; 或者直接关闭QtCreator。

2、没有编译成功的情况下,最常见情况是程序本身需要include的头文件被遗漏了

解决方法:细心查找基类所用的头文件,include之后即可。

3、.h文件中相关的槽函数在cpp文件中没有定义

解决方法:查找遗漏的槽函数,根据需要,具体的定义。(碰到过一回,很关键)

4、.h文件中声明了全局变量,.cpp文件的函数里面使用了该全局变量

解决方法:.cpp文件外面没有初始化全局变量,初始化即可

我碰到的
定义了class A
{
A();
~A();
}
我在cpp中没有实现~A(),就报了这个错,删除就这个声明就好了,。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误通常表示编译器在链接过程中遇到了问题。它意味着链接器(ld)返回了一个非零的退出状态码,表明链接失败。 有几种可能的原因导致此错误: 1. 编译器找不到所需的库文件:这可能是因为库文件的路径设置不正确。你可以检查编译命令中是否包含了正确的库路径选项(例如"-L"选项),并确保库文件存在于指定的路径中。 2. 缺少依赖项:如果程序依赖于其他库或模块,但没有将其链接到最终的可执行文件中,就会导致链接错误。你可以检查编译命令中是否包含了所需的依赖项(例如"-l"选项)。 3. 符号重定义:如果在不同的源文件中定义了相同的全局符号(例如函数或变量),链接器可能无法确定使用哪个定义。这可能是因为你在多个源文件中定义了同名的全局符号。你可以尝试将这些定义更改为静态或内联函数,或者将它们放在命名空间中以避免冲突。 4. 代码错误:链接错误也可能是由于代码中存在错误导致的。在编译过程中,编译器可能会将代码转化为中间表示形式,然后链接器将这些中间表示形式转化为可执行文件。如果代码中存在语法错误、类型错误或逻辑错误,编译器可能无法正确地生成中间表示形式,从而导致链接错误。 你可以检查编译器的输出日志,查看是否有其他错误或警告信息,以帮助确定导致链接错误的具体原因
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值