• 6747阅读
  • 5回复

QT5.0.1的编译QT4代码的问题 [复制链接]

上一主题 下一主题
离线magaiou
 

只看楼主 倒序阅读 楼主  发表于: 2013-07-24


好多的编译处都报这个错,怎么办啊,是不是使用静态二进制的bin文件,安装文件缺少吗?
离线magaiou

只看该作者 1楼 发表于: 2013-07-24
[leyes@localhost QSQLiteEx]$ make
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/opt/Qt5.0.1/5.0.1/gcc/mkspecs/linux-g++ -I. -I. -I/opt/Qt5.0.1/5.0.1/gcc/include -I/opt/Qt5.0.1/5.0.1/gcc/include/QtWidgets -I/opt/Qt5.0.1/5.0.1/gcc/include/QtGui -I/opt/Qt5.0.1/5.0.1/gcc/include/QtCore -I. -o main.o main.cpp
g++ -Wl,-O1 -Wl,-rpath,/opt/Qt5.0.1/5.0.1/gcc -Wl,-rpath,/opt/Qt5.0.1/5.0.1/gcc/lib -o QSQLiteEx main.o   -L/opt/Qt5.0.1/5.0.1/gcc/lib -lQt5Widgets -lQt5Gui -lQt5Core -lGL -lpthread
main.o:在函数‘main’中:
main.cpp:(.text.startup+0x45):对‘QSqlDatabase::defaultConnection’未定义的引用
main.cpp:(.text.startup+0x9d):对‘QSqlDatabase::addDatabase(QString const&, QString const&)’未定义的引用
main.cpp:(.text.startup+0xda):对‘QSqlDatabase::setDatabaseName(QString const&)’未定义的引用
main.cpp:(.text.startup+0xf0):对‘QSqlDatabase::open()’未定义的引用
main.cpp:(.text.startup+0x18c):对‘QSqlDatabase::~QSqlDatabase()’未定义的引用
main.cpp:(.text.startup+0x1b6):对‘QSqlDatabase::QSqlDatabase()’未定义的引用
main.cpp:(.text.startup+0x1de):对‘QSqlQuery::QSqlQuery(QString const&, QSqlDatabase)’未定义的引用
main.cpp:(.text.startup+0x1f4):对‘QSqlDatabase::~QSqlDatabase()’未定义的引用
main.cpp:(.text.startup+0x218):对‘QSqlQuery::exec(QString const&)’未定义的引用
main.cpp:(.text.startup+0x2ff):对‘QSqlQuery::exec(QString const&)’未定义的引用
main.cpp:(.text.startup+0x319):对‘QSqlQuery::record() const’未定义的引用
main.cpp:(.text.startup+0x328):对‘QSqlRecord::count() const’未定义的引用
main.cpp:(.text.startup+0x42b):对‘QSqlQuery::prepare(QString const&)’未定义的引用
main.cpp:(.text.startup+0x495):对‘QSqlQuery::bindValue(int, QVariant const&, QFlags<QSql::ParamTypeFlag>)’未定义的引用
main.cpp:(.text.startup+0x4dd):对‘QSqlQuery::bindValue(int, QVariant const&, QFlags<QSql::ParamTypeFlag>)’未定义的引用
main.cpp:(.text.startup+0x51f):对‘QSqlQuery::bindValue(int, QVariant const&, QFlags<QSql::ParamTypeFlag>)’未定义的引用
main.cpp:(.text.startup+0x561):对‘QSqlQuery::bindValue(int, QVariant const&, QFlags<QSql::ParamTypeFlag>)’未定义的引用
main.cpp:(.text.startup+0x5b4):对‘QSqlQuery::bindValue(int, QVariant const&, QFlags<QSql::ParamTypeFlag>)’未定义的引用
main.o:main.cpp:(.text.startup+0x60a): more undefined references to `QSqlQuery::bindValue(int, QVariant const&, QFlags<QSql::ParamTypeFlag>)' follow
main.o:在函数‘main’中:
main.cpp:(.text.startup+0x76c):对‘QSqlQuery::exec()’未定义的引用
main.cpp:(.text.startup+0x789):对‘QSqlQuery::lastError() const’未定义的引用
main.cpp:(.text.startup+0x7d9):对‘QSqlError::driverText() const’未定义的引用
main.cpp:(.text.startup+0x941):对‘QSqlError::~QSqlError()’未定义的引用
main.cpp:(.text.startup+0xc2e):对‘QSqlQuery::exec(QString const&)’未定义的引用
main.cpp:(.text.startup+0xe18):对‘QSqlQuery::bindValue(int, QVariant const&, QFlags<QSql::ParamTypeFlag>)’未定义的引用
main.cpp:(.text.startup+0xe54):对‘QSqlQuery::bindValue(int, QVariant const&, QFlags<QSql::ParamTypeFlag>)’未定义的引用
main.cpp:(.text.startup+0xe90):对‘QSqlQuery::bindValue(int, QVariant const&, QFlags<QSql::ParamTypeFlag>)’未定义的引用
main.cpp:(.text.startup+0xee3):对‘QSqlQuery::bindValue(int, QVariant const&, QFlags<QSql::ParamTypeFlag>)’未定义的引用
main.cpp:(.text.startup+0xf36):对‘QSqlQuery::bindValue(int, QVariant const&, QFlags<QSql::ParamTypeFlag>)’未定义的引用
main.o:main.cpp:(.text.startup+0xf89): more undefined references to `QSqlQuery::bindValue(int, QVariant const&, QFlags<QSql::ParamTypeFlag>)' follow
main.o:在函数‘main’中:
main.cpp:(.text.startup+0x108c):对‘QSqlQuery::exec()’未定义的引用
main.cpp:(.text.startup+0x10c1):对‘QSqlQuery::clear()’未定义的引用
main.cpp:(.text.startup+0x112f):对‘QSqlQuery::prepare(QString const&)’未定义的引用
main.cpp:(.text.startup+0x1199):对‘QSqlQuery::lastError() const’未定义的引用
main.cpp:(.text.startup+0x11e9):对‘QSqlError::driverText() const’未定义的引用
main.cpp:(.text.startup+0x1341):对‘QSqlError::~QSqlError()’未定义的引用
main.cpp:(.text.startup+0x1586):对‘QSqlQuery::exec(QString const&)’未定义的引用
main.cpp:(.text.startup+0x168a):对‘QSqlRecord::~QSqlRecord()’未定义的引用
main.cpp:(.text.startup+0x1692):对‘QSqlQuery::~QSqlQuery()’未定义的引用
main.cpp:(.text.startup+0x177d):对‘QSqlRecord::~QSqlRecord()’未定义的引用
main.cpp:(.text.startup+0x1785):对‘QSqlQuery::~QSqlQuery()’未定义的引用
main.cpp:(.text.startup+0x1793):对‘QSqlDatabase::~QSqlDatabase()’未定义的引用
main.cpp:(.text.startup+0x18d3):对‘QSqlError::~QSqlError()’未定义的引用
main.cpp:(.text.startup+0x1b7e):对‘QSqlError::~QSqlError()’未定义的引用
main.cpp:(.text.startup+0x1cdb):对‘QSqlQuery::~QSqlQuery()’未定义的引用
main.cpp:(.text.startup+0x1cee):对‘QSqlQuery::~QSqlQuery()’未定义的引用
main.cpp:(.text.startup+0x1d00):对‘QSqlDatabase::~QSqlDatabase()’未定义的引用
main.cpp:(.text.startup+0x1db7):对‘QSqlDatabase::~QSqlDatabase()’未定义的引用
main.cpp:(.text.startup+0x1dcc):对‘QSqlDatabase::~QSqlDatabase()’未定义的引用
collect2: 错误:ld 返回 1
make: *** [QSQLiteEx] 错误 1
[leyes@localhost QSQLiteEx]$
离线hp_201111

只看该作者 2楼 发表于: 2013-07-24
QT5.0.1的编译QT4代码的问题

好像最少要在 PRO 文件中加

greaterThan(QT_MAJOR_VERSION, 4) QT += widgets

不知LZ 加了没
离线jdwx

只看该作者 3楼 发表于: 2013-07-24
除了楼上说的,还有Qt5的模块和Qt4有一些区别,还有一些模块和类名字没变,但是接口有一些变化。
先从pro文件添加模块开始修改。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线realfan

只看该作者 4楼 发表于: 2013-07-25
pro中加了
QT += sql 吗
是静态编译还动态编译?
静态编译还要在pro中加
QTPLUGIN += qsqlite
在main.cpp中加
#include<QtPlugin>
Q_IMPORT_PLUGIN(QSQLiteDriverPlugin)
离线magaiou

只看该作者 5楼 发表于: 2013-07-25
谢拉,
这个是加了的,greaterThan(QT_MAJOR_VERSION, 4) QT += widgets
这个QT += sql 没加之前,
发现QT5和QT4有好多地方改变的,越来越好用了,但是发现还有QHttp,QFtp需要自己把库文件和源码家进去
QtFtp和QtHttp 详见:
http://qt-project.org/forums/viewthread/24466
快速回复
限100 字节
 
上一个 下一个