Set-up MariaDB library file location programmatically?
-
@SPlatten said in Set-up MariaDB library file location programmatically?:
how do I do that?
If you used online installer you can use Maintenance Tool...
-
-
@jsulm , I'm confused now, the link posted is to the Open source page. What if I don't intend my application to be open source, once its completed I intend to purchase a license before distribution. Can I build a mySQL driver for Qt without open source?
-
@SPlatten said in Set-up MariaDB library file location programmatically?:
once its completed I intend to purchase a license before distribution
I'm not sure QtCompany will agree with that.
You should contact them.There are many ways to get the source code. For example here: https://download.qt.io/archive/qt/5.15/5.15.0/single/
Or using Git as described here: https://wiki.qt.io/Get_the_Source -
Hi, it might be easier if you use Qt's ODBC plugin (libqsqlodbc.dylib) together with the MariaDB Connector/ODBC
-
@hskoglund , thank you, I'll look into it. It seems its available for just about every operating system except MAC.
-
@SPlatten I'm not a lawyer and not working for QtCompany (that's why I suggested to ask the company).
You say: you are now developing an app and you want to release it later as closed source. And you want to buy Qt license when you want to release the app. My point was: QtCompany could say that you actually need the commercial license from the beginning as you're developing a closed source application which is going to be distributed. I may be wrong here, but it is worth checking.If you're not going to distribute your app then there is no issue.
-
@jsulm , thank you, I'll send Qt an email. Contacting Qt to ask such a question is easier said than done...How do I contact the appropriate person or department in Qt to ask?
https://www.qt.io/contact-qt-services-team
Query sent to Qt.
-
@SPlatten said in Set-up MariaDB library file location programmatically?:
That doesn't contain a mysql folder. I just did:
sudo find / -name sqldrivers/mysql
Nothing was found on my system.
I realize this is probably not your issue here, but I think you ought be aware, at least for future searches, that
-name abc/def
--- with that/
--- will always return false, so you'll never find a match.On MacOS (I'm Ubuntu) I think you'll find you would have to use
-path
instead, plus you want a substring match, so you would need e.g.:sudo find / -path '*sqldrivers/mysql' -print
P.S.
Don't forget the-print
which you didn't show you used, elsefind
is remarkably silent ;-) -
@jsulm said in Set-up MariaDB library file location programmatically?:
My point was: QtCompany could say that you actually need the commercial license from the beginning as you're developing a closed source application which is going to be distributed. I may be wrong here, but it is worth checking.
You do, or at least the QtC want you to, I had the issue when I wanted to open source a project that was previously made under QtLicence, slightly different but that exact topic came up.
It's due to the yearly licensing
scamscheme, would be no issue at all if it was a one purchase last for ever kind of deal -
I've been trying to follow: https://doc.qt.io/qt-5/sql-driver.html
Lots of issues, for starters a terminal at:/Users/simonplatten/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/mysql
Executing qmake: ~/Qt/5.14.2/clang_64/bin/qmake -version
Does not return the same I only get:
QMake version 3.1 Using Qt version 5.14.2 in /Users/simonplatten/Qt/5.14.2/clang_64/lib
I could do with some help on how to turn the source into a driver.
I got a little further:
export QTDIR=/Users/simonplatten/Qt/5.14.2 export QTDIRBIN=$QTDIR/clang_64/bin cd $QTDIR/Src/qtbase/src/plugins/sqldrivers $QTDIRBIN/qmake -- MYSQL_PREFIX=/usr/local Running configuration tests... Checking for DB2 (IBM)... no Checking for InterBase... no Checking for MySQL... no Checking for OCI (Oracle)... no Checking for ODBC... no Checking for PostgreSQL... no Checking for SQLite (version 2)... no Checking for TDS (Sybase)... no Done running configuration tests. Configure summary: Qt Sql Drivers: DB2 (IBM) .............................. no InterBase .............................. no MySql .................................. no OCI (Oracle) ........................... no ODBC ................................... no PostgreSQL ............................. no SQLite2 ................................ no SQLite ................................. yes Using system provided SQLite ......... no TDS (Sybase) ........................... no Qt is now configured for building. Just run 'make'. Once everything is built, you must run 'make install'. Qt will be installed into '/Users/simonplatten/Qt/5.14.2/clang_64'. Prior to reconfiguration, make sure you remove any leftovers from the previous build.
I then ran "make", waited for it to complete. Some errors at the end:
Project ERROR: Library 'freetype' is not defined. make[1]: *** [sub-minimal-make_first] Error 3 make: *** [sub-platforms-make_first] Error 2
Then run "make install".
It would appear this has not built the driver as I still see in the Application Output:
Warning:QSqlDatabase: QMYSQL driver not loaded Warning:QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7 Info: L00000001:onFailure: db, failure: Driver not loaded Driver not loaded
Why does it appear that its all set-up to build sqlite and NOT mysql ?
-
@SPlatten There is no point to run "make install" if make failed...
Install libfreetype-dev package and try again.Also, if you see "Checking for MySQL... no" in configure output, then why even bother calling make?!
To see why MySQL is disabled check the configure.log file. -
I'v been through the steps again:
cd $QTDIR/Src/qtbase/src/plugins/sqldrivers $QTDIRBIN/qmake -- MYSQL_PREFIX=/usr/local
The output is the same:
Running configuration tests... Done running configuration tests. Configure summary: Qt Sql Drivers: DB2 (IBM) .............................. no InterBase .............................. no MySql .................................. no OCI (Oracle) ........................... no ODBC ................................... no PostgreSQL ............................. no SQLite2 ................................ no SQLite ................................. yes Using system provided SQLite ......... no TDS (Sybase) ........................... no Qt is now configured for building. Just run 'make'. Once everything is built, you must run 'make install'. Qt will be installed into '/Users/simonplatten/Qt/5.14.2/clang_64'. Prior to reconfiguration, make sure you remove any leftovers from the previous build.
Again it looks like its set-up to build SQLite and not MySQL. I then run make and the result is:
cd sqlite/ && ( test -e Makefile || /Users/simonplatten/Qt/5.14.2/clang_64/bin/qmake -o Makefile /Users/simonplatten/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/sqlite/sqlite.pro ) && /Applications/Xcode.app/Contents/Developer/usr/bin/make -f Makefile make[1]: Nothing to be done for `first'.
@jsulm , I tried your instruction:
install: libfreetype-dev: No such file or directory
'config.log' is quite verbose:
Command line: MYSQL_PREFIX=/usr/local Global lib dirs: [] [/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/lib] Global inc dirs: [/usr/local/opt/openssl/include] [/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/11.0.3/include /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/usr/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include] loaded result for library config.sqldrivers.libraries.db2 Trying source 0 (type inline) of library db2 ... => source failed condition 'config.win32'. Trying source 1 (type inline) of library db2 ... sqlcli.h not found in [] and global paths. sqlcli1.h not found in [] and global paths. => source produced no result. test config.sqldrivers.libraries.db2 FAILED loaded result for library config.sqldrivers.libraries.ibase Trying source 0 (type inline) of library ibase ... => source failed condition 'config.win32'. Trying source 1 (type inline) of library ibase ... ibase.h not found in [] and global paths. => source produced no result. test config.sqldrivers.libraries.ibase FAILED loaded result for library config.sqldrivers.libraries.mysql Trying source 0 (type mysqlConfig) of library mysql ... + /usr/local/bin/mysql_config --version > 10.4.6 + /usr/local/bin/mysql_config --libs_r > -L/usr/local/Cellar/mariadb/10.4.6_1/lib -lmariadb -lz -liconv -lssl -lcrypto + /usr/local/bin/mysql_config --include > -I/usr/local/Cellar/mariadb/10.4.6_1/include/mysql -I/usr/local/Cellar/mariadb/10.4.6_1/include/mysql/.. + cd /Users/simonplatten/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql && /Users/simonplatten/Qt/5.14.2/clang_64/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" 'INCLUDEPATH += /usr/local/opt/openssl/include' 'QMAKE_USE += mysql' 'QMAKE_LIBS_MYSQL = -L/usr/local/Cellar/mariadb/10.4.6_1/lib' 'QMAKE_INCDIR_MYSQL = /usr/local/Cellar/mariadb/10.4.6_1/include/mysql /usr/local/Cellar/mariadb/10.4.6_1/include' /Users/simonplatten/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql > Info: creating stash file /Users/simonplatten/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/config.tests/.qmake.stash + cd /Users/simonplatten/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql && MAKEFLAGS= make > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -stdlib=libc++ -O2 -std=gnu++11 -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.13 -w -fPIC -I. -I/usr/local/opt/openssl/include -I/usr/local/Cellar/mariadb/10.4.6_1/include/mysql -I/usr/local/Cellar/mariadb/10.4.6_1/include -I/Users/simonplatten/Qt/5.14.2/clang_64/mkspecs/macx-clang -o main.o main.cpp > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -stdlib=libc++ -headerpad_max_install_names -arch x86_64 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.13 -Wl,-rpath,@executable_path/../Frameworks -o mysql main.o -L/usr/local/Cellar/mariadb/10.4.6_1/lib > Undefined symbols for architecture x86_64: > "_mysql_get_client_version", referenced from: > _main in main.o > ld: symbol(s) not found for architecture x86_64 > clang: error: linker command failed with exit code 1 (use -v to see invocation) > make: *** [mysql] Error 1 => source failed verification. Trying source 1 (type mysqlConfig) of library mysql ... + /usr/local/bin/mysql_config --version > 10.4.6 + /usr/local/bin/mysql_config --libs > -L/usr/local/Cellar/mariadb/10.4.6_1/lib -lmariadb -lz -liconv -lssl -lcrypto + /usr/local/bin/mysql_config --include > -I/usr/local/Cellar/mariadb/10.4.6_1/include/mysql -I/usr/local/Cellar/mariadb/10.4.6_1/include/mysql/.. + cd /Users/simonplatten/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql && /Users/simonplatten/Qt/5.14.2/clang_64/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" 'INCLUDEPATH += /usr/local/opt/openssl/include' 'QMAKE_USE += mysql' 'QMAKE_LIBS_MYSQL = -L/usr/local/Cellar/mariadb/10.4.6_1/lib' 'QMAKE_INCDIR_MYSQL = /usr/local/Cellar/mariadb/10.4.6_1/include/mysql /usr/local/Cellar/mariadb/10.4.6_1/include' /Users/simonplatten/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql + cd /Users/simonplatten/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql && MAKEFLAGS= make clean && MAKEFLAGS= make > rm -f main.o > rm -f *~ core *.core > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -stdlib=libc++ -O2 -std=gnu++11 -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.13 -w -fPIC -I. -I/usr/local/opt/openssl/include -I/usr/local/Cellar/mariadb/10.4.6_1/include/mysql -I/usr/local/Cellar/mariadb/10.4.6_1/include -I/Users/simonplatten/Qt/5.14.2/clang_64/mkspecs/macx-clang -o main.o main.cpp > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -stdlib=libc++ -headerpad_max_install_names -arch x86_64 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.13 -Wl,-rpath,@executable_path/../Frameworks -o mysql main.o -L/usr/local/Cellar/mariadb/10.4.6_1/lib > Undefined symbols for architecture x86_64: > "_mysql_get_client_version", referenced from: > _main in main.o > ld: symbol(s) not found for architecture x86_64 > clang: error: linker command failed with exit code 1 (use -v to see invocation) > make: *** [mysql] Error 1 => source failed verification. Trying source 2 (type mysqlConfig) of library mysql ... + /usr/local/bin/mysql_config --version > 10.4.6 + /usr/local/bin/mysql_config --libs_r > -L/usr/local/Cellar/mariadb/10.4.6_1/lib -lmariadb -lz -liconv -lssl -lcrypto + /usr/local/bin/mysql_config --include > -I/usr/local/Cellar/mariadb/10.4.6_1/include/mysql -I/usr/local/Cellar/mariadb/10.4.6_1/include/mysql/.. + cd /Users/simonplatten/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql && /Users/simonplatten/Qt/5.14.2/clang_64/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" 'INCLUDEPATH += /usr/local/opt/openssl/include' 'QMAKE_USE += mysql' 'QMAKE_LIBS_MYSQL = -L/usr/local/Cellar/mariadb/10.4.6_1/lib -lmariadb -lz -liconv -lssl -lcrypto' 'QMAKE_INCDIR_MYSQL = /usr/local/Cellar/mariadb/10.4.6_1/include/mysql /usr/local/Cellar/mariadb/10.4.6_1/include' /Users/simonplatten/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql + cd /Users/simonplatten/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql && MAKEFLAGS= make clean && MAKEFLAGS= make > rm -f main.o > rm -f *~ core *.core > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -stdlib=libc++ -O2 -std=gnu++11 -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.13 -w -fPIC -I. -I/usr/local/opt/openssl/include -I/usr/local/Cellar/mariadb/10.4.6_1/include/mysql -I/usr/local/Cellar/mariadb/10.4.6_1/include -I/Users/simonplatten/Qt/5.14.2/clang_64/mkspecs/macx-clang -o main.o main.cpp > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -stdlib=libc++ -headerpad_max_install_names -arch x86_64 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.13 -Wl,-rpath,@executable_path/../Frameworks -o mysql main.o -L/usr/local/Cellar/mariadb/10.4.6_1/lib -lmariadb -lz -liconv -lssl -lcrypto > ld: library not found for -lssl > clang: error: linker command failed with exit code 1 (use -v to see invocation) > make: *** [mysql] Error 1 => source failed verification. Trying source 3 (type mysqlConfig) of library mysql ... + /usr/local/bin/mysql_config --version > 10.4.6 + /usr/local/bin/mysql_config --libs > -L/usr/local/Cellar/mariadb/10.4.6_1/lib -lmariadb -lz -liconv -lssl -lcrypto + /usr/local/bin/mysql_config --include > -I/usr/local/Cellar/mariadb/10.4.6_1/include/mysql -I/usr/local/Cellar/mariadb/10.4.6_1/include/mysql/.. + cd /Users/simonplatten/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql && /Users/simonplatten/Qt/5.14.2/clang_64/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" 'INCLUDEPATH += /usr/local/opt/openssl/include' 'QMAKE_USE += mysql' 'QMAKE_LIBS_MYSQL = -L/usr/local/Cellar/mariadb/10.4.6_1/lib -lmariadb -lz -liconv -lssl -lcrypto' 'QMAKE_INCDIR_MYSQL = /usr/local/Cellar/mariadb/10.4.6_1/include/mysql /usr/local/Cellar/mariadb/10.4.6_1/include' /Users/simonplatten/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql + cd /Users/simonplatten/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql && MAKEFLAGS= make clean && MAKEFLAGS= make > rm -f main.o > rm -f *~ core *.core > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -stdlib=libc++ -O2 -std=gnu++11 -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.13 -w -fPIC -I. -I/usr/local/opt/openssl/include -I/usr/local/Cellar/mariadb/10.4.6_1/include/mysql -I/usr/local/Cellar/mariadb/10.4.6_1/include -I/Users/simonplatten/Qt/5.14.2/clang_64/mkspecs/macx-clang -o main.o main.cpp > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -stdlib=libc++ -headerpad_max_install_names -arch x86_64 -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.13 -Wl,-rpath,@executable_path/../Frameworks -o mysql main.o -L/usr/local/Cellar/mariadb/10.4.6_1/lib -lmariadb -lz -liconv -lssl -lcrypto > ld: library not found for -lssl > clang: error: linker command failed with exit code 1 (use -v to see invocation) > make: *** [mysql] Error 1 => source failed verification. Trying source 4 (type inline) of library mysql ... mysql.h not found in [/usr/local/include] and global paths. => source produced no result. Trying source 5 (type inline) of library mysql ... => source failed condition 'config.win32'. Trying source 6 (type inline) of library mysql ... mysql.h not found in [/usr/local/include] and global paths. => source produced no result. test config.sqldrivers.libraries.mysql FAILED loaded result for library config.sqldrivers.libraries.oci Trying source 0 (type inline) of library oci ... => source failed condition 'config.win32'. Trying source 1 (type inline) of library oci ... oci.h not found in [] and global paths. => source produced no result. test config.sqldrivers.libraries.oci FAILED loaded result for library config.sqldrivers.libraries.odbc Trying source 0 (type inline) of library odbc ... => source failed condition 'config.win32'. Trying source 1 (type inline) of library odbc ... sql.h not found in [] and global paths. sqlext.h not found in [] and global paths. => source produced no result. Trying source 2 (type inline) of library odbc ... => source failed condition '!config.win32 && !config.darwin'. test config.sqldrivers.libraries.odbc FAILED loaded result for library config.sqldrivers.libraries.psql Trying source 0 (type pkgConfig) of library psql ... pkg-config use disabled globally. => source produced no result. Trying source 1 (type psqlConfig) of library psql ... pg_config not found. => source produced no result. Trying source 2 (type psqlEnv) of library psql ... => source failed condition 'config.win32'. Trying source 3 (type psqlEnv) of library psql ... libpq-fe.h not found in [] and global paths. => source produced no result. test config.sqldrivers.libraries.psql FAILED loaded result for library config.sqldrivers.libraries.sqlite2 Trying source 0 (type inline) of library sqlite2 ... sqlite.h not found in [] and global paths. => source produced no result. test config.sqldrivers.libraries.sqlite2 FAILED loaded result for library config.sqldrivers.libraries.tds Trying source 0 (type sybaseEnv) of library tds ... => source failed condition 'config.win32'. Trying source 1 (type sybaseEnv) of library tds ... + cd /Users/simonplatten/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/config.tests/tds && /Users/simonplatten/Qt/5.14.2/clang_64/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" 'INCLUDEPATH += /usr/local/opt/openssl/include' 'QMAKE_USE += tds' 'QMAKE_LIBS_TDS = -lsybdb' /Users/simonplatten/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/config.tests/tds + cd /Users/simonplatten/Qt/5.14.2/Src/qtbase/src/plugins/sqldrivers/config.tests/tds && MAKEFLAGS= make > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -stdlib=libc++ -O2 -std=gnu++11 -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.13 -w -fPIC -I. -I/usr/local/opt/openssl/include -I/Users/simonplatten/Qt/5.14.2/clang_64/mkspecs/macx-clang -o main.o main.cpp > main.cpp:2:10: fatal error: 'sybfront.h' file not found > #include <sybfront.h> > ^~~~~~~~~~~~ > 1 error generated. > make: *** [main.o] Error 1 => source failed verification. test config.sqldrivers.libraries.tds FAILED
-
@SPlatten said in Set-up MariaDB library file location programmatically?:
install: libfreetype-dev: No such file or directory
Name on your system can be different, simply search for freetype.
Undefined symbols for architecture x86_64: > "_mysql_get_client_version", referenced from: > _main in main.o > ld: symbol(s) not found for architecture x86_64
/usr/local/Cellar/mariadb/10.4.6_1/lib/* - is this a x86_64 binary?