Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Linux(Ubuntu)上为Qt安装ODBC驱动程序运行时出现语法错误;制造;_C++_Qt_Ubuntu_Odbc_Driver - Fatal编程技术网

C++ 在Linux(Ubuntu)上为Qt安装ODBC驱动程序运行时出现语法错误;制造;

C++ 在Linux(Ubuntu)上为Qt安装ODBC驱动程序运行时出现语法错误;制造;,c++,qt,ubuntu,odbc,driver,C++,Qt,Ubuntu,Odbc,Driver,我正在尝试连接到Qt中ubuntu上的SQL Server数据库,需要安装ODBC驱动程序。 我做了文件让我做的事。并将unixOBDC从安装到/usr/local/unixODBC,然后运行这些命令 cd ~/Qt5.7.0/5.7/Src/qtbase/src/plugins/sqldrivers/odbc qmake "INCLUDEPATH+=/usr/local/unixODBC/include" "LIBS+=-L/usr/local/unixODBC/lib -lodbc" mak

我正在尝试连接到Qt中ubuntu上的SQL Server数据库,需要安装ODBC驱动程序。 我做了文件让我做的事。并将unixOBDC从安装到
/usr/local/unixODBC
,然后运行这些命令

cd ~/Qt5.7.0/5.7/Src/qtbase/src/plugins/sqldrivers/odbc
qmake "INCLUDEPATH+=/usr/local/unixODBC/include" "LIBS+=-L/usr/local/unixODBC/lib -lodbc"
make
这导致了两个源中的语法错误

这就是我现在运行代码时得到的结果

QSqlDatabase: QODBC driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7
我错过了什么

编辑:

makeg++ -c -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -O2 -std=c++11 -fvisibility=hidden -fvisibility-inlines-hidden -std=c++11 -fno-exceptions -Wall -W -Wvla -Wdate-time -D_REENTRANT -fPIC -DQT_NO_TSLIB -DUNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_CAST_FROM_ASCII -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_PLUGIN -DQT_SQL_LIB -DQT_CORE_LIB -I. -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore/5.5.1 -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore/5.5.1/QtCore -isystem /usr/include/x86_64-linux-gnu/qt5/QtSql/5.5.1 -isystem /usr/include/x86_64-linux-gnu/qt5/QtSql/5.5.1/QtSql -isystem /usr/include/x86_64-linux-gnu/qt5 -isystem /usr/include/x86_64-linux-gnu/qt5/QtSql -isystem /usr/include/x86_64-linux-gnu/qt5/QtCore -I.moc -I../../../../mkspecs/linux-g++-64 -o .obj/qsql_odbc.o ../../../sql/drivers/odbc/qsql_odbc.cpp ../../../sql/drivers/odbc/qsql_odbc.cpp:193:44: error: ISO C++ forbids declaration of ‘Q_DECLARE_SQLDRIVER_PRIVATE’ with no type [-fpermissive] Q_DECLARE_SQLDRIVER_PRIVATE(QODBCDriver) ^ ../../../sql/drivers/odbc/qsql_odbc.cpp:193:44: error: expected ‘;’ at end of member declaration ../../../sql/drivers/odbc/qsql_odbc.cpp: In constructor ‘QODBCResultPrivate::QODBCResultPrivate(QODBCResult*, const QODBCDriver*)’: ../../../sql/drivers/odbc/qsql_odbc.cpp:198:33: error: no matching function for call to ‘QSqlResultPrivate::QSqlResultPrivate(QODBCResult*&, const QODBCDriver*&)’ hasSQLFetchScroll(true) ^ In file included from ../../../sql/drivers/odbc/qsql_odbc.cpp:59:0: /usr/include/x86_64-linux-gnu/qt5/QtSql/5.5.1/QtSql/private/qsqlresult_p.h:67:5: note: candidate: QSqlResultPrivate::QSqlResultPrivate() QSqlResultPrivate() ^ /usr/include/x86_64-linux-gnu/qt5/QtSql/5.5.1/QtSql/private/qsqlresult_p.h:67:5: note: candidate expects 0 arguments, 2 provided /usr/include/x86_64-linux-gnu/qt5/QtSql/5.5.1/QtSql/private/qsqlresult_p.h:63:20: note: candidate: QSqlResultPrivate::QSqlResultPrivate(const QSqlResultPrivate&) class Q_SQL_EXPORT QSqlResultPrivate ^ /usr/include/x86_64-linux-gnu/qt5/QtSql/5.5.1/QtSql/private/qsqlresult_p.h:63:20: note: candidate expects 1 argument, 2 provided ../../../sql/drivers/odbc/qsql_odbc.cpp:200:30: error: ‘drv_d_func’ was not declared in this scope unicode = drv_d_func()->unicode; ^ ../../../sql/drivers/odbc/qsql_odbc.cpp: In member function ‘void* QODBCResultPrivate::dpEnv() const’: ../../../sql/drivers/odbc/qsql_odbc.cpp:209:49: error: ‘drv_d_func’ was not declared in this scope SQLHANDLE dpEnv() const { return drv_d_func() ? drv_d_func()->hEnv : 0;} ^ ../../../sql/drivers/odbc/qsql_odbc.cpp: In member function ‘void* QODBCResultPrivate::dpDbc() const’: ../../../sql/drivers/odbc/qsql_odbc.cpp:210:49: error: ‘drv_d_func’ was not declared in this scope SQLHANDLE dpDbc() const { return drv_d_func() ? drv_d_func()->hDbc : 0;} ^ ../../../sql/drivers/odbc/qsql_odbc.cpp: In member function ‘bool QODBCResultPrivate::isStmtHandleValid()’: ../../../sql/drivers/odbc/qsql_odbc.cpp:228:42: error: ‘drv_d_func’ was not declared in this scope return disconnectCount == drv_d_func()->disconnectCount; ^ ../../../sql/drivers/odbc/qsql_odbc.cpp: In member function ‘void QODBCResultPrivate::updateStmtHandleState()’: ../../../sql/drivers/odbc/qsql_odbc.cpp:233:34: error: ‘drv_d_func’ was not declared in this scope disconnectCount = drv_d_func()->disconnectCount; ^ ../../../sql/drivers/odbc/qsql_odbc.cpp: In constructor ‘QODBCResult::QODBCResult(const QODBCDriver*)’: ../../../sql/drivers/odbc/qsql_odbc.cpp:959:51: error: no matching function for call to ‘QSqlResult::QSqlResult(QODBCResultPrivate&)’ : QSqlResult(*new QODBCResultPrivate(this, db)) ^ In file included from /usr/include/x86_64-linux-gnu/qt5/QtSql/5.5.1/QtSql/private/qsqlresult_p.h:51:0, from ../../../sql/drivers/odbc/qsql_odbc.cpp:59: /usr/include/x86_64-linux-gnu/qt5/QtSql/qsqlresult.h:69:5: note: candidate: QSqlResult::QSqlResult(QSqlResultPrivate&, const QSqlDriver*) QSqlResult(QSqlResultPrivate &dd, const QSqlDriver *db); ^ /usr/include/x86_64-linux-gnu/qt5/QtSql/qsqlresult.h:69:5: note: candidate expects 2 arguments, 1 provided /usr/include/x86_64-linux-gnu/qt5/QtSql/qsqlresult.h:68:14: note: candidate: QSqlResult::QSqlResult(const QSqlDriver*) explicit QSqlResult(const QSqlDriver * db); ^ /usr/include/x86_64-linux-gnu/qt5/QtSql/qsqlresult.h:68:14: note: no known conversion for argument 1 from ‘QODBCResultPrivate’ to ‘const QSqlDriver*’ ../../../sql/drivers/odbc/qsql_odbc.cpp: In member function ‘virtual bool QODBCResult::exec()’: ../../../sql/drivers/odbc/qsql_odbc.cpp:1464:36: error: ‘class QODBCResultPrivate’ has no member named ‘drv_d_func’ int precision = d->drv_d_func()->datetime_precision - 20; // (2 ^ ../../../sql/drivers/odbc/qsql_odbc.cpp:1480:42: error: ‘class QODBCResultPrivate’ has no member named ‘drv_d_func’ d->drv_d_func()->datetime_precision, ^ Makefile:463: recipe for target '.obj/qsql_odbc.o' failed make: *** [.obj/qsql_odbc.o] Error 1 makeg++-c-g-O2-fstack protector-strong-Wformat-Werror=格式安全性-Wdate time-D_-FORTIFY_SOURCE=2-O2-std=c++11-fvisibility=hidden-fvisibility-fvisibility inlines hidden-std=c++11-fno异常-Wall-W-Wvla-Wdate time-D重入-fPIC-DQT-DQT-TSLIB-DUNICODE-DQT-DQT-DQT-NO-CAST-dascii-DQT-DQT异常-D_LARGEFILE64_SOURCE-D_LARGEFILE_SOURCE-DQT_NO_DEBUG-DQT_PLUGIN-DQT_SQL_LIB-DQT_CORE_LIB-I.-isystem/usr/include/x86_64-linux-gnu/qt5/QtCore/5.5.1-isystem/usr/qt5/QtCore/QtCore-isystem/usr/include/x86-linux-gnu/qt5/qt5.5/qtystem/qt5.5.1-linux-gnu/qtu/qt5/qt5.1-SQL-isystem/usr/include/x86_64-linux-gnu/qt5-isystem/usr/include/x86_64-linux-gnu/QtSql-isystem/usr/include/x86_64-linux-gnu/qt5/QtCore-I.moc-I../../../../mkspecs/linux-g++-64-o.obj/qsql_odbc o../../../../sql/drivers odbc qsql/qsql\u odbc cpp /////SQL/Dealth/ODBC/QSQLYODBC.CPP:193:44:错误:ISO C++禁止声明“qyDeRealSql DrRulerMuxBuy”,没有类型[ferixe]。 Q_DECLARE_SQLDRIVER_PRIVATE(QODBCDriver) ^ ../../../sql/drivers/odbc/qsql_odbc.cpp:193:44:错误:应为“;”在成员声明末尾 ../../sql/drivers/odbc/qsql_odbc.cpp:在构造函数“QODBCResultPrivate::QODBCResultPrivate(QODBCResult*,const QODBCDriver*)”中: ../../sql/drivers/odbc/qsql_odbc.cpp:198:33:错误:调用“QSqlResultPrivate::QSqlResultPrivate(QODBCResult*&,const QODBCDriver*&)”时没有匹配的函数 hasSQLFetchScroll(真) ^ 在../../../sql/drivers/odbc/qsql_odbc.cpp:59:0中包含的文件中: /usr/include/x86_64-linux-gnu/qt5/QtSql/5.5.1/QtSql/private/qsqlresult_p.h:67:5:注:候选:QSqlResultPrivate::QSqlResultPrivate() QSqlResultPrivate() ^ /usr/include/x86_64-linux-gnu/qt5/QtSql/5.5.1/QtSql/private/qsqlresult_p.h:67:5:注意:候选者需要0个参数,提供2个 /usr/include/x86_64-linux-gnu/qt5/QtSql/5.5.1/QtSql/private/qsqlresult\u p.h:63:20:注:候选:QSqlResultPrivate::QSqlResultPrivate(const QSqlResultPrivate&) 类Q_SQL_导出QSqlResultPrivate ^ /usr/include/x86_64-linux-gnu/qt5/QtSql/5.5.1/QtSql/private/qsqlresult_p.h:63:20:注意:候选者需要1个参数,提供2个 ../../../sql/drivers/odbc/qsql_odbc.cpp:200:30:错误:未在此作用域中声明“drv_d_func” unicode=drv_d_func()->unicode; ^ ../../../sql/drivers/odbc/qsql_odbc.cpp:在成员函数“void*QODBCResultPrivate::dpEnv()const”中: ../../../sql/drivers/odbc/qsql_odbc.cpp:209:49:错误:未在此作用域中声明“drv_d_func” SQLHANDLE dpEnv()常量{return drv_d_func()?drv_d_func()->hEnv:0;} ^ ../../../sql/drivers/odbc/qsql_odbc.cpp:在成员函数“void*QODBCResultPrivate::dpDbc()const”中: ../../../sql/drivers/odbc/qsql_-odbc.cpp:210:49:错误:“drv_d_-func”未在此范围内声明 SQLHANDLE dpDbc()常量{return drv_d_func()?drv_d_func()->hDbc:0;} ^ ../../../sql/drivers/odbc/qsql_odbc.cpp:在成员函数“bool QODBCResultPrivate::isStmtHandleValid()”中: ../../../sql/drivers/odbc/qsql_-odbc.cpp:228:42:错误:“drv_d_-func”未在此范围内声明 返回disconnectCount==drv_d_func()->disconnectCount; ^ ../../../sql/drivers/odbc/qsql_odbc.cpp:在成员函数“void QODBCResultPrivate::updateStmtHandleState()”中: ../../../sql/drivers/odbc/qsql_-odbc.cpp:233:34:错误:“drv_d_-func”未在此范围内声明 disconnectCount=drv_d_func()->disconnectCount; ^ ../../sql/drivers/odbc/qsql_odbc.cpp:在构造函数“QODBCResult::QODBCResult(const QODBCDriver*)”中: ../../sql/drivers/odbc/qsql_odbc.cpp:959:51:错误:调用“QSqlResult::QSqlResult(QODBCResultPrivate&)”时没有匹配的函数 :QSqlResult(*新QODBCResultPrivate(this,db)) ^ 在/usr/include/x86_64-linux-gnu/qt5/QtSql/5.5.1/QtSql/private/qsqlresult_p.h:51:0中包含的文件中, 来自../../../sql/drivers/odbc/qsql_odbc.cpp:59: /usr/include/x86_64-linux-gnu/qt5/QtSql/qsqlresult.h:69:5:注:候选:qsqlresult::qsqlresult(QSqlResultPrivate&,const QSqlDriver*) QSqlResult(QSqlResultPrivate&dd,常量QSqlDriver*db); ^ /usr/include/x86_64-linux-gnu/qt5/QtSql/qsqlresult.h:69:5:注意:候选者需要2个参数,提供1个 /usr/include/x86_64-linux-gnu/qt5/QtSql/qsqlresult.h:68:14:注:候选:qsqlresult::qsqlresult(const QSqlDriver*) 显式QSqlResult(常量QSqlDriver*db); ^ /usr/include/x86_64-linux-gnu/qt5/QtSql/qsqlresult.h:68:14:注意:参数1从'QODBCResultPrivate'到'const QSqlDriver*'的转换未知 ../../../sql/drivers/odbc/qsql_odbc.cpp:在成员函数“virtual bool QODBCResult::exec()”中: ../../sql/drivers/odbc/qsql_odbc.cpp:1464:36:错误:“类QODBCResultPrivate”没有名为“drv_d_func”的成员 int precision=d->drv_d_func()->d