У меня есть Qt
программы, которая делает использование QtSql
, я включил все заголовки (#include <QtSql/QtSql>
) и даже побежали Run QMake
и rebuild
однако он бросает следующие ошибки компоновщика:неопределенные символы для архитектуры x86_64 Qt
Undefined symbols for architecture x86_64:
"QSqlDatabase::addDatabase(QString const&, QString const&)", referenced from:
authcontroller::authenticate(QString const&, QString const&) in authcontroller.o
"QSqlDatabase::setDatabaseName(QString const&)", referenced from:
authcontroller::authenticate(QString const&, QString const&) in authcontroller.o
"QSqlDatabase::defaultConnection", referenced from:
authcontroller::authenticate(QString const&, QString const&) in authcontroller.o
"QSqlDatabase::open()", referenced from:
authcontroller::authenticate(QString const&, QString const&) in authcontroller.o
"QSqlDatabase::QSqlDatabase()", referenced from:
authcontroller::authenticate(QString const&, QString const&) in authcontroller.o
"QSqlDatabase::~QSqlDatabase()", referenced from:
authcontroller::authenticate(QString const&, QString const&) in authcontroller.o
"QSqlDatabase::operator=(QSqlDatabase const&)", referenced from:
authcontroller::authenticate(QString const&, QString const&) in authcontroller.o
"QSqlError::~QSqlError()", referenced from:
authcontroller::authenticate(QString const&, QString const&) in authcontroller.o
"QSqlQuery::exec()", referenced from:
authcontroller::authenticate(QString const&, QString const&) in authcontroller.o
"QSqlQuery::prepare(QString const&)", referenced from:
authcontroller::authenticate(QString const&, QString const&) in authcontroller.o
"QSqlQuery::bindValue(QString const&, QVariant const&, QFlags<QSql::ParamTypeFlag>)", referenced from:
authcontroller::authenticate(QString const&, QString const&) in authcontroller.o
"QSqlQuery::QSqlQuery(QString const&, QSqlDatabase)", referenced from:
authcontroller::authenticate(QString const&, QString const&) in authcontroller.o
"QSqlQuery::~QSqlQuery()", referenced from:
authcontroller::authenticate(QString const&, QString const&) in authcontroller.o
"QSqlDatabase::lastError() const", referenced from:
authcontroller::authenticate(QString const&, QString const&) in authcontroller.o
"QSqlQuery::value(int) const", referenced from:
authcontroller::authenticate(QString const&, QString const&) in authcontroller.o
"QSqlQuery::lastError() const", referenced from:
authcontroller::authenticate(QString const&, QString const&) in authcontroller.o
"operator<<(QDebug, QSqlError const&)", referenced from:
authcontroller::authenticate(QString const&, QString const&) in authcontroller.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I не выполнял никаких специальных шагов по настройке QtSql и не устанавливал драйверы SQLite, поскольку я понимаю, что они уже включены в установку Qt.
Любые идеи? Я бегу последнюю версию Qt распределение
Благодаря
добавить 'QT + = sql' к вашему' .pro' Did файл? Недостаточно включать заголовки для определенного модуля, вы также должны указать его использование с указанным выше синтаксисом. – BaCaRoZzo
Yep - просто сделал это сейчас, и это сработало. Не полностью читал документацию QtSQL :) спасибо! –