2014-12-18 6 views
1

내 kali 리눅스 (데비안 기반)에 Qt 5.3.2 64 비트를 설치했고 MySQL 데이터베이스에 연결하는 데 문제가 있습니다.QT 5.3.2 linux libmysqlclient

우선, 어떤 이유로 든 미리 만들어진 qsqlmysql qt 드라이버는이 배포판에서 기본적으로 제공되는 libmysqlclient18 (libmysqlclient.so.18) 대신 libmysqlclient16 (ldd는 libmysqlclient_r.so.16을 찾을 수 없음)에 의존합니다! 심볼릭 링크를 만들고 libmysqlclient_r.so.16이라는 이름을 지정하면 작동하지 않습니다. 그래서 debian (squeeze iirc) 용 libmysqlclient16을 찾고 설치했습니다!

[email protected]:~$ ldd /opt/Qt5.3.2/5.3/gcc_64/plugins/sqldrivers/libqsqlmysql.so 
linux-vdso.so.1 => (0x00007fff4a9ce000) 
libmysqlclient_r.so.16 => /usr/lib/libmysqlclient_r.so.16 (0x00007ffb99a3d000) 
libQt5Sql.so.5 => /opt/Qt5.3.2/5.3/gcc_64/plugins/sqldrivers/../../lib/libQt5Sql.so.5 (0x00007ffb997fc000) 
(...) 

그것은 작동하지만, 큰 문제를 가지고 ... 그것은 아마도 오래된 그리고 내가 날짜 시간에 밀리 초를 사용할 수 있도록,> 5.6 MySQL의 서버에 연결하는 데 사용합니다 (이후 MySQL은 5.6.4) . libmysqlclient가이를 지원하지 않는 것으로 보입니다. DB에서 가져 오는 모든 타임 스탬프에는 밀리 초가 0으로 채워져 있습니다.

그럼 질문은 : 대신 qmqlmysql이 libmysqlclient18을 찾는 방법이 있습니까? (일반 데비안 wheezy에서 시도했기 때문에 libmysqlclient18이 보인다.)

+1

현재 plattform 용 mysql 플러그인을 다시 빌드하기 만하면됩니다. ''$ QTDIR/src/plugins/sqldrivers/mysql /'''qmake "LIBS + = - L/usr/lib/-lmysql" "INCLUDEPATH + =/usr/include /"mysql을 실행하면된다. pro && make'. 이것은 시스템에있는 최신 mysql-library를 사용하여 Qt 용 mysql-plugin을 빌드해야한다. 설치된 시스템에 해당하는 LIBS/INCLUDEPATH를 변경해야 할 수도 있습니다. –

+0

나는 그것을 막으려 고 노력했다. (필자는 대단히 게으 르기 때문에) ... 잘 ... 모든 것을 업데이트 한 후, 그리고 새로운 플러그인을 빌드하는 동안 왜 --lmysqlclient_r과 같은 것을 찾지 못했는지 알아 낸 후, 괜찮 았는데;) 고마워! @SebastianLange 원하는 경우 정식 답변 만들기 – RuiDo

답변

0

현재 plattform에 대한 mysql 플러그인을 다시 빌드하기 만하면된다. $QTDIR/src/plugins/sqldrivers/mysql/ 실행으로 가야합니다 : qmake "LIBS+=-L/usr/lib/ -lmysql" "INCLUDEPATH+=/usr/include/" mysql.pro && make. 이것은 시스템에있는 최신 mysql-library를 사용하여 Qt 용 mysql-plugin을 빌드해야한다. 설치된 시스템에 해당하는 LIBS/INCLUDEPATH를 변경해야 할 수도 있습니다. –   세바스찬 랭

내가 피하려고했다가 (원인 상당히 게으른 I ' m)하지만, 음 ... mysql을 내가 할 수로하고 같은 것들을 발견되지 않은 이유를 파악 후 많이 관련된 모든 업데이트 한 후 - lmysqlclient_r 새로운 플러그인을 만드는 동안 잘 작동했습니다.) ... –   RuiDo