Привет всем!!!
У меня вопрос такой: Откомпилил Qt с указанием флагов и заголовочных файлов и библиотек mysql. Все откомпилилось. Но возник такая проблема. mysql работает с консоли все создается и записывается в базу, но когда я пересаживаюсь на с++ ничего нехочет работать. Вот что пишет scorpio@shaman ~/Desktop/test $ make g++ -c -pipe -O2 -march=pentium-m -pipe -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT _GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr /include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/in clude/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. -o test.o test.cpp test.cpp:3: warning: unused parameter ‘argc’ test.cpp:3: warning: unused parameter ‘argv’ g++ -o test test.o -L/usr/lib/qt4 -lQtGui -L/usr/lib/qt4 -L/usr/lib -lpng -l SM -lICE -lXrender -lXrandr -lXfixes -lXcursor -lfreetype -lfontconfig -lXext -l X11 -lQtCore -lz -lm -lrt -ldl -lpthread test.o: In function `main': test.cpp:(.text+0x1d): undefined reference to `QSqlDatabase::defaultConnection' test.cpp:(.text+0x59): undefined reference to `QSqlDatabase::addDatabase(QString const&, QString const&)' test.cpp:(.text+0xa5): undefined reference to `QSqlDatabase::setHostName(QString const&)' test.cpp:(.text+0xe4): undefined reference to `QSqlDatabase::setDatabaseName(QSt ring const&)' test.cpp:(.text+0x123): undefined reference to `QSqlDatabase::setUserName(QStrin g const&)' test.cpp:(.text+0x162): undefined reference to `QSqlDatabase::setPassword(QStrin g const&)' test.cpp:(.text+0x182): undefined reference to `QSqlDatabase::~QSqlDatabase()' test.cpp:(.text+0x1bb): undefined reference to `QSqlDatabase::~QSqlDatabase()' collect2: ld returned 1 exit status make: *** [test] Ошибка 1
мне вот эти строки недают покоя I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr /include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/in clude/qt4/QtGui -I/usr/include/qt4 Это старая Qt версии 4.1 и ее не компилил с поддержкой mysql; А стоит 4.3 c mysql. также присутствует и qt 3 версии одним словом с переменными окружения такая каша, что не смог разобраться) можно удалить 3 и 4 вирсии а оставить только 4.3) Но пошли на хитрость запускаю eclipse(плагин для работы с qt стоит) у казываю ему библиотеки и заголовки какие использовать. А он мне в ответ: что неможет найти QtMySql тогда указываю ему QtMySql/QtMySql - видит. ПРинаписани следующего кода: QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("host2"); db.setDatabaseName("mytest"); db.setUserName("root"); db.setPassword("57r80t10");
Пишет что нету QSqlDatabase. Что делать уважаемые гуру? Спасибо.