Qt编译中出现collect2.exe:-1: 错误:error: ld returned 1 exit status

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt编译中出现collect2.exe:-1: 错误:error: ld returned 1 exit status相关的知识,希望对你有一定的参考价值。

15:25:21: 为项目2012-3执行步骤 ...

15:25:21: 配置没有改变, 跳过 qmake 步骤。

15:25:21: 正在启动 "D:\Qt\Qt5.1.0\Tools\mingw48_32\bin\mingw32-make.exe"

D:/Qt/Qt5.1.0/Tools/mingw48_32/bin/mingw32-make -f Makefile.Debug

mingw32-make[1]: Entering directory 'D:/Qt/Qt5.1.0/Tools/QtCreator/bin/2012-text/build-2012-3-Desktop_Qt_5_1_0_MinGW_32bit-Debug'

g++ -Wl,-subsystem,windows -mthreads -o debug\2012-3.exe debug/main.o debug/mainwindow.o debug/moc_mainwindow.o -lglu32 -lopengl32 -lgdi32 -luser32 -lmingw32 -lqtmaind -LD:\Qt\Qt5.1.0\\5.1.0\mingw48_32\lib -lQt5Widgetsd -lQt5Guid -lQt5Cored

debug/mainwindow.o: In function `ZN15QTypedArrayDataItE10sharedNullEv':

D:\Qt\Qt5.1.0\Tools\QtCreator\bin\2012-text\build-2012-3-Desktop_Qt_5_1_0_MinGW_32bit-Debug/../2012-3/mainwindow.cpp:9: multiple definition of `square'

debug/main.o:D:\Qt\Qt5.1.0\Tools\QtCreator\bin\2012-text\build-2012-3-Desktop_Qt_5_1_0_MinGW_32bit-Debug/../2012-3/main.cpp:5: first defined here

debug/moc_mainwindow.o: In function `Z7qt_noopv':

D:\Qt\Qt5.1.0\Tools\QtCreator\bin\2012-text\build-2012-3-Desktop_Qt_5_1_0_MinGW_32bit-Debug/debug/moc_mainwindow.cpp:63: multiple definition of `square'

debug/main.o:D:\Qt\Qt5.1.0\Tools\QtCreator\bin\2012-text\build-2012-3-Desktop_Qt_5_1_0_MinGW_32bit-Debug/../2012-3/main.cpp:5: first defined here

collect2.exe: error: ld returned 1 exit status

Makefile.Debug:80: recipe for target 'debug\2012-3.exe' failed

mingw32-make[1]: *** [debug\2012-3.exe] Error 1

mingw32-make[1]: Leaving directory 'D:/Qt/Qt5.1.0/Tools/QtCreator/bin/2012-text/build-2012-3-Desktop_Qt_5_1_0_MinGW_32bit-Debug'

makefile:34: recipe for target 'debug' failed

mingw32-make: *** [debug] Error 2

15:25:22: 进程"D:\Qt\Qt5.1.0\Tools\mingw48_32\bin\mingw32-make.exe"退出,退出代码 2 。

Error while building/deploying project 2012-3 (kit: Desktop Qt 5.1.0 MinGW 32bit)

当执行步骤 'Make'时

15:25:22: Elapsed time: 00:01.

其实,这个问题很常见,就是VS工具封装的qmake参数不对,因此,要自己来构成配置文件。自己在cmd.exe命令窗口下用qmake.exe生成VS的工程文件XXX.vcproj,在双击XXX.vcproj就可以正常打开窗口,编译了。具体方法因为文字叙述比较多,因此,我就直接推荐你我之前写的一篇博客吧,按照博客所说一步一步来,就会成功了。http://blog.csdn.net/devil_box/article/details/41345179 参考技术A >> /mainwindow.cpp:9: multiple definition of `square'
>> /main.cpp:5: first defined here
square重复定义了。查找所有square的地方,去掉重复定义。

QT 静态编译后中文可能会出现乱码

QT 静态编译后中文可能会出现乱码。
这是因为处理文字编码的 libqcncodecs 库是以 plugin 形式存放在 QT 静态编译目录/plugs/codecs/libqcncodecs.a 文件中。
文字乱码,需要加入入字体插件在 main.cpp 文件内:
#include <QtPlugin>
Q_IMPORT_PLUGIN(qcncodecs)

然后在工程 pro文件中加入库:
QTPLUGIN += qjpeg qcncodecs
或者
LIBS += QT 静态编译目录/plugs/codecs/plugins/codecs/libqcncodecs.a

注意,在动态编译时,要注释掉,否则编译不通过。

http://download.csdn.net/detail/csw5986/9540200

以上是关于Qt编译中出现collect2.exe:-1: 错误:error: ld returned 1 exit status的主要内容,如果未能解决你的问题,请参考以下文章

Qt 编译时报错“退出,退出代码2”的原因

Qt Creator中增加新的ui文件时报错

Qt出现常量有换行符怎么办

QT中提示“常量中h有换行符”解决办法

Qt编译错误“GL/gl.h:No such file or directory”的解决方法

qt creator的一个项目配置成release编译出错问题