QT C++新手问题:collect2:c语言 ld returnedd 1 exit status

在QT官网下的qtsdk.bin然后安装后使用,无法编译。就连它自带的示例也是同样的错误提示这是个在QtCreator下的提示::-1: error: collect2: ld returned 1 exit status好心给帮看看,谢谢了解决办法:不使用QtCreator生成应用程序,在终端方方式下,转到工作目录下1 qmake -project2 qmake此时生成一个Makefile,修改这个文件,将&LIBS&&&&&&&&& =&行中&-pthread&后至末尾删除3 make好了,成功。不知道有没有办法,让qmake不生成含那些字串的Makeifle.还有什么疑问
应该不是qmake的错误,大概是楼主本人的系统原有的一些lib与要编译安装的有冲突。
可能是pro文件出错了,我也经常遇到这种错误,如果是QT-=gui/ core就改成QT +=gui/core或者直接把这行去掉,可能吧,反正是该pro文件的问题
&和老婆合作一个毕业设计嵌入式开发与设计,她做QT部分,我做内核裁减部分。今天闲来无聊,想学学QT。于是打开了QT Assistant,里面内容很丰富的说,从QT历史到QT使用,一应具全(哎,相当初要知道这个,就不会为了安装QT费那么大的劲了)。看看里面的example吧。好,先来个helloworld吧,按照文档一步一步的做:
&&&&1、源码
#include &QApplication&#include &QPushButton&int main(int argc, char *argv[]){&&&& QApplication app(argc, argv);&&&& QPushButton hello("Hello world!");&&&& hello.resize(100, 30);&&&& hello.show();&&&& return app.exec();&}&&
&&&&&& 保存成main.cpp
&&&& 2、打开cmd,进入main.cpp的目录,执行以下命令
&&&&&&& qmake -project &// 为了生成project文件
&&&&&&& qmake&&&&&&&&&& //生成Makefile文件
&&&&&&&&make&&&&&& &&&& //生成可执行文件
&&&&&&& 出问题了,
make -f Makefile.Debugmake[1]: Entering directory `C:/Qt/mypro'g++ -c -g -g -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL-DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"C:/Qt/4.1.2/include/QtCore" -I"C:/Qt/4.1.2/include/QtGui" -I"C:/Qt/4.1.2/include" -I"." -I"C:/Qt/4.1.2/include/ActiveQt" -I"debug" -I"." -I"C:/Qt/4.1.2/mkspecs/win32-g++" -o debug/main.o main.cppmain.cpp:10:4: warning: no newline at end of fileg++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-subsystem,windows -o "debug/mypro.exe" debug/main.o -L"C:/Qt/4.1.2/lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4c:/Dev-Cpp/bin/../lib/gcc/mingw32/3.4.2/../../../../mingw32/bin/ld.exe: cannot find -lQtGuid4collect2: ld returned 1 exit statusmake[1]: *** [debug/mypro.exe] Error 1make[1]: Leaving directory `C:/Qt/mypro'make: *** [debug] Error 2
&&&&&& 提示mingw的ld.exe找不到QTGuid4库文件,我到QT安
&&&&&&& 装目录的lib里查看了一下,确实没有此库,只有libQTGui4.a这
&&&&&&& 个库文件,这个。。。。当机立断,把libQTGui4.a复制了一个,
&&&&&&& 更改名字为libQTGuid4.a,在进行make ,不错,那个错误提示没有
&&&&&&& 了,但是有提示找不到QTCored4库文件,
make -f Makefile.Debugmake[1]: Entering directory `C:/Qt/mypro'g++ -c -g -g -frtti -fexceptions -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL-DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS_QMAIN -I"C:/Qt/4.1.2/include/QtCore" -I"C:/Qt/4.1.2/include/QtGui" -I"C:/Qt/4.1.2/include" -I"." -I"C:/Qt/4.1.2/include/ActiveQt" -I"debug" -I"." -I"C:/Qt/4.1.2/mkspecs/win32-g++" -o debug/main.o main.cppmain.cpp:10:4: warning: no newline at end of fileg++ -mthreads -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc -Wl,-subsystem,windows -o "debug/mypro.exe" debug/main.o -L"C:/Qt/4.1.2/lib" -lmingw32 -lqtmaind -lQtGuid4 -lQtCored4c:/Dev-Cpp/bin/../lib/gcc/mingw32/3.4.2/../../../../mingw32/bin/ld.exe: cannot find -lQtGuid4collect2: ld returned 1 exit statusmake[1]: *** [debug/mypro.exe] Error 1make[1]: Leaving directory `C:/Qt/mypro'make: *** [debug] Error 2
&&&&&&& 照葫芦画瓢,再复制一份
&&&&&&&&libQTCored4.a,在运行make ,顺利通过。
&&&&&&&&虽然错误解决了,但是不知道是为什么,按说应该在安装QT时产生
&&&&&&& 那两个库文件的,可是。。。。反正是奇怪,继续寻找答案
PS:注意这个警告
main.cpp:10:4: warning: no newline at end of file
错误原由: Each instance of a backslash character (/) immediately followed by anew-line character is deleted, splicing physical source lines to form logicalsource lines. Only the last backslash on any physical source line shall beeligible for being part of such a splice. A source file that is not emptyshall end in a new-line character, which shall not be immediately precededby a backslash character before any such splicing takes place.
改正方法:在main函数结束后打个回车符号
chmod u+x qt-sdk-linux-x86-opensource-2009.02.bin./qt-sdk-linux-x86-opensource-2009.02.bin接着出现安装,,,,,
安装结束,,,,,运行如下代码时#include &QApplication&#include &QLabel&int main(int argc, char *argv[]){QApplication app(argc, argv);QLabel *label = new QLabel("Hello Qt!");label-&show();return app.exec();}
Qt Creator& 编译运行,,,Starting: /usr/bin/make -wmake: Entering directory `/home/sun/Desktop/Myprojects/hello'g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../qt/qt/mkspecs/linux-g++ -I. -I../../../qt/qt/include/QtCore -I../../../qt/qt/include/QtGui -I../../../qt/qt/include -I. -I. -I. -o hello.o hello.cppg++ -Wl,-O1 -Wl,-rpath,/home/sun/qt/qt/lib -o hello hello.o -L/home/sun/qt/qt/lib -lQtGui -L/home/sun/qt/qt/lib -L/usr/X11R6/lib -pthread -lfreetype -lgobject-2.0 -lSM -lICE -pthread -pthread -lXrender -lfontconfig -lXext -lX11 -lQtCore -lm -pthread -lgthread-2.0 -lrt -lglib-2.0 -ldl -lpthread/usr/bin/ld: cannot find -lfreetypecollect2: ld returned 1 exit statusmake: *** [hello] Error 1make: Leaving directory `/home/sun/Desktop/Myprojects/hello'Exited with code 2.Error while building project helloWhen executing build step 'Make'
解决& /usr/bin/ld: cannot find -lfreetype
安装& libfreetype-dev
(用synaptic Package Manager 选 libfreetype6 和libfreetype6-dev )
编译时出现:/usr/bin/ld: cannot find -lgobject-2.0collect2: ld returned 1 exit statusmake: *** [hello] Error 1make: Leaving directory `/home/sun/Desktop/pro/hello'Exited with code 2.Error while building project helloWhen executing build step 'Make'
安装:gob2&&&&&&&&&&&&&&& 2.0.15-1libsm6libsm-devlibxrender-devfontconfig-devlibxetx-dev
此时即可解决,,,,,,编译、运行正常,,,
本文已收录于以下专栏:
相关文章推荐
在Linux环境下编一个工程,无论怎么编译总是出现错误,提示如下:
bmeta_info.cpp:4280: undefined reference to `crypt’
collect2: ld...
最近看《Gnu/linux编程》线程这章时,自己便试着写了一个简单实例,然后用gcc编译,结果出现:pthread.c:(.text+0x29): undefined reference to `pt...
最近在编译Android 时,发现一错误:collect2: ld returned 1 exit status,上网搜索是链接库的问题,make clear 后重新make 也不可以,估计是编译链接...
本人最近突发其想的想做游戏,于是重拾cocos2d-x。以前也接触过cocos2d-x,不过都是两年前的事情了。而且当时是在Windows平台上做开发,一切都很顺畅。这次在Ubuntu15.04上按照...
在Linux下运行qt程序make时遇到错误
刚才遇到的这个问题,在网上搜索了一下,有说之前的程序已经运行了,有说pro文件有问题的,我找了一会,发现我在头文件中定义了两个slots,在cPP文件中没有实现。 见nokia论坛Another re...
源程序:include include
DevC++出现[Error] ld returned 1 exit status,如何解决才好呢?
#include"stdio.h"
int main()
printf("Hell...
程序没有问题,但是运行的时候,会出现:
:-1: error: cannot open output file debug\untitled4.exe: Permission denied
在linux环境编译应用程式或lib的source
code时常常会出现如下的错误讯息:
/usr/bin/ld:
cannot find -lxxx
他的最新文章
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)ubantu下QT开发不能编译报collect2: ld returned 1 exit status的解决
发表于 17:27|
来源CSDN博客|
作者zk_2000(zk_2000)
摘要:sudo apt-get install libfreetype6-dev
sudo apt-get install libavahi-gobject-dev
sudo apt-get install libSM-dev
sudo apt-get install libXrender-dev
sudo apt-get install libfontconfig-dev
sudo apt-get install libXext-devEdit: To get OpenGL to
sudo apt-get install libfreetype6-dev
sudo apt-get install libavahi-gobject-dev
sudo apt-get install libSM-dev
sudo apt-get install libXrender-dev
sudo apt-get install libfontconfig-dev
sudo apt-get install libXext-devEdit: To get OpenGL to build I also had to install libgl1-mesa-dev and freeglut3-dev.Edit2: Audio required libphonon-dev.
安装以上包后就可以正常使用了。
推荐阅读相关主题:
网友评论有(0)
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章10:43 提问
请问我在Dev-Cpp写c的程序\collect2.exe[Error] ld returned 1 exit status那错
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int leap(int a);
int number(int year,int m ,int d);
int main(int argc, char *argv[]) {
int year, month,day,n;
printf("请输入年月日\n");
//sacanf("%d,%d,%d",&year,&month,&day);
sacanf("%d,%d,%d",&year,&month,&day);
n=number(year,month,day);
if((n%5)0)
printf("%d%d%d 打渔\n",year,month,day);
printf("%d%d%d
嗮网\n",year,month,day);
int leap(int a){
if(a%4==0 && a%100!=0 || a%400==0)
int number(int year,int m ,int d){
int sum=0,i,j;
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int b[12]={31,29,31,30,31,30,31,31,30,31,30,31};
if(leap(year==1))
for(i=0;i&m-1;i++)
sum+=b[i];
for(i=0;i&m-1;i++)
sum+=a[i];
for(j=2011;j&j++)
if(leap(j)==1)
网上查过是链接问题。。。 怎么改回去?
按赞数排序
没见过sacanf这个函数。。。
其他相关推荐最关键的是-lpthread
在Linux下创建线程时,编译时会出现下面的错误,
[root@linuxserver 807]# gcc -o 22 22.c
/tmp/cc21HcoW.o(.text+0x4c): In function `main':
: undefined reference to `pthread_create'
collect2: ld returned 1 exit status
#include &unistd.h&
#include &pthread.h&
#include &stdio.h&
#include &stdlib.h&
void testthread(void)
&&&&&&&&printf(&I
am working.\n&);
&&&&&&&&printf(&I
am stopping.\n&);
&&&&&&&&pthread_exit(0);
int main(int argc,char *argv[])
&&&&&&&&int
&&&&&&&&pthread_t
&&&&&&&&char
*szP=NULL;
&&&&&&&&while(1)
&&&&&&&&&&&&&&&&i++;
&&&&&&&&&&&&&&&&pthread_create(&pid,NULL,(void
*)testthread,(void *)&i);
&&&&&&&&&&&&&&&&printf(&ok%d,pid=%d\n&,i,pid);
&&&&&&&&&&&&&&&&sleep(5);
此时,只需改变编译方式
将gcc -o 22 22.c 改变为 gcc -O2 -Wall -o 22 22.c -lpthread
最关键的是-lpthread
/tmp/cc21HcoW.o(.text+0x4c): In function `main':
: undefined reference to `pthread_create'
collect2: ld returned 1 exit status
可以看出是在ld的时候系统无法找到pthread_create函数。也就是说编译器在link得时候找不到其中的一个使用库的函数。
本文已收录于以下专栏:
相关文章推荐
在Linux环境下编一个工程,无论怎么编译总是出现错误,提示如下:
bmeta_info.cpp:4280: undefined reference to `crypt’
collect2: ld...
在Linux下运行qt程序make时遇到错误
在QT官网下的qtsdk.bin然后安装后使用,无法编译。就连它自带的示例也是同样的错误提示这是个在QtCreator下的提示::-1: error: collect2: ld returned 1 ...
编译的时候经常会报出的问题
异步IO的例子
void main()
could not read symbols: File in wrong format collect2: ld 返回 1 make: *** [all] 错误 1
在linux下编译C++程序,如果使用gcc命令进行编译,则有可能出现此错误:
[plain] view
hugo@hugo-H...
最近看《Gnu/linux编程》线程这章时,自己便试着写了一个简单实例,然后用gcc编译,结果出现:pthread.c:(.text+0x29): undefined reference to `pt...
刚刚开始学C++,用Eclipse 写C++代码练习,可是编译几次就开始报错,导致自己无法编译了
错误大致如下:
21:09:05 **** Incremental Build of configur...
在Linux下创建线程时,编译时会出现下面的错误,
[root@linuxserver 807]# gcc -o 22 22.c
/tmp/cc21HcoW.o(.text+0x4c): In f...
linux@ubuntu:~/smb/lc_smarthome$ mipsel-openwrt-linux-gcc lc_tty.c lc_tty.h main.c -lpthread -o main...
他的最新文章
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)}

我要回帖

更多关于 ld returned 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信