qt undefined reference to linux

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt undefined reference to linux相关的知识,希望对你有一定的参考价值。

我想编译一个helloworld,qmake -project和qmake都通过来就是最后的make提示了一大堆错误
[root@CentOS6-wdq workspace]# make
g++ -c -pipe -Wall -W -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -fno-strict-aliasing -DQT_NO_DEBUG -DQT_SHARED -DQT_TABLET_SUPPORT -DQT_THREAD_SUPPORT -I/usr/lib/qt-3.3/mkspecs/default -I. -I. -I/usr/lib/qt-3.3/include -o HelloWorld.o HelloWorld.cpp
g++ -o workspace HelloWorld.o -L/usr/lib/qt-3.3/lib -lqt-mt -lXext -lX11 -lm
HelloWorld.o: In function `main':
/home/wangdq/workspace/HelloWorld.cpp:5: undefined reference to `QApplication::QApplication(int&, char**, int)'
HelloWorld.o: In function `QString':
/usr/include/QtCore/qstring.h:413: undefined reference to `QString::fromAscii_helper(char const*, int)'
HelloWorld.o: In function `main':
/home/wangdq/workspace/HelloWorld.cpp:6: undefined reference to `QLabel::QLabel(QString const&, QWidget*, QFlags<Qt::WindowType>)'
HelloWorld.o: In function `~QString':
/usr/include/QtCore/qstring.h:869: undefined reference to `QString::free(QString::Data*)'
/usr/include/QtCore/qstring.h:869: undefined reference to `QString::free(QString::Data*)'
collect2: ld 返回 1
make: *** [workspace] 错误 1
helloworld.cpp是这么写的:
#include <QtGui/QApplication>
#include <QtGui/QLabel>
int main(int argc,char **argv)

QApplication app(argc,argv);
QLabel *label=new QLabel("Hello World!!!");
label->show();
return app.exec();

找了半天别人说的目录名不能有qt但是我这目录名也没有qt啊,求指导啊!!~~
对了我的centos装了两个qt分别qt3.3和qt4是不是冲突了?还有就是怎么把qt3.3给删了啊??

参考技术A 貌似是缺少系统库,有些版本的linux编译qt是会出现缺少系统库而导致编译不成功的问题,不是很推荐用最新的编译器来编译,其实2.4的内核和3.4.5的编译器做qt就已经足够了,你可以去查查看那些版本的linux下可以成功的编译qt,安装的时候尽可能把开发用的库都选上,不然就只有自己再去打补丁,
仅作参考
参考技术B 新手还是安装nokia官方的qtsdk,用qtcreator写程序、编译调试。
你去下个完整的qtsdk,用qtsdk里面的控制台编译。

http://qt.nokia.com/downloads

选择Offline installer ,linux系统的。
参考技术C 估计是你的路径设置没有设对,你再检查一遍你的路径设置。我的qt设置了两个环境变量,一个是/etc/profile,一个是/root/.bashrc. 参考技术D 配置文件
QT += gui

用qt484编译程序的时候,报错误 libQtGui.so: undefined reference to `FcFreeTypeQueryFace'

用qt484编译程序的时候,最后生成可执行文件的时候报 libQtGui.so: undefined reference to `FcFreeTypeQueryFace',我用ldd -r ibQtGui.so.4.8.4 发现依赖的动态链接库都能找到,就是报如下错误
undefined symbol: FT_GlyphSlot_Embolden (./libQtGui.so.4.8.4)
undefined symbol: FcFreeTypeQueryFace (./libQtGui.so.4.8.4)。
不知道这两个函数跟哪个动态库关联。

参考技术A fuck you ! what's these? 参考技术B 什么跟什么哇???看起来好高级的感觉。。。但又不懂。。。 参考技术C 雕饰了5个文件 参考技术D 啥几把 第5个回答  2015-06-19 表示看得头大

以上是关于qt undefined reference to linux的主要内容,如果未能解决你的问题,请参考以下文章

Qt的“undefined reference to `vtable for”错误解决(手动解决,加深理解)

Qt错误:error: undefined reference to `vtable for 类名'

win7下qt error: undefined reference to `_imp__getnameinfo@28'解决

Qt开发编译时报"undefined reference to"问题的解决方案

用qt484编译程序的时候,报错误 libQtGui.so: undefined reference to `FcFreeTypeQueryFace'

Qt sqlite3.o: undefined reference to symbol ‘dlclose@@GLIBC_2.2.5‘