Since SQLite in the latest development version needs to access MySQL on the server, it is transplanted to MySQL-connector-C to access the server. You can also cross-compile the MySQL source code, however, it seems that MySQL does not support cross-compilation. It is complicated to check the online steps.
1. Download mysql-connector-c-6.0.2.tar.gz
Http://dev.mysql.com/downloads/connector/c/
2. decompress the package to the directory.
3. Install cmake: sudo apt-Get install cmake in Ubuntu
4. I will not elaborate on installing the Cross Compiler (for details, see arm-Linux-gcc-V)
5. Set the Compiler
Export cc = arm-Linux-GCC cxx = arm-Linux-G ++
Added in cmakelists.txt
Set (cmake_cxx_compiler "arm-Linux-G ++ ")
Set (cmake_c_compiler "arm-Linux-GCC ")
6. Generate makefile with cmke
Mkdir mypath
Cmake-G "UNIX makefiles"-dcmake_install_prefix = mypath (mypath is the installation path after cross-compilation)
7. Start Compilation
Make
During the make process, the undefined mathematical functions such as floor (), log (), and pow () may be reported during compilation to 95%, because the-LM parameter must be added during GCC compilation to connect to math. h
Solution:
Vim cmakelists.txt // Add the-LM parameter in the following two parts:
Set (cmake_c_flags "$ {cmake_c_flags}-wall
-Lm ")
Set (cmake_cxx_flags "$ {cmake_cxx_flags}-wall-lm-fno-rtti-fno-exceptions ")
If the RINT () function in include/my_global.h reports an error at the start of compilation, You can annotate all the function bodies and compile them through
Make install
8. Use the compiled library as the QT compilation driver. Because the efficiency of accessing the database through the driver is relatively low, we use the static compilation method to compile the driver into the QT library.
./Configure-Prefix/usr/local/trolltech/qtembedded-arm-opensource-confirm-license-release-shared-Embedded ARM-xplatformqws/Linux-arm-G ++
-Depths 16,18, 24-fast-optimized-qmake-PCH-QT-SQL-SQLite-QT-libjpeg-QT-zlib-QT-libpng-QT-FreeType-little-Endian-host-little- endian-no-qt3support-no-LibTIFF-no-libmng-no-OpenGL-no-MMX-no-SSE-no-sse2-no-3dnow-no-WebKit-no-qvfb-no-phonon- no-NIS
-No-OpenGL-no-cups-no-glib-no-xcursor-no-xfixes-no-xrandroid-no-xrender-no-separate-debug-Info-nomakeexamples-nomake tools-nomake docs-QT-mouse-tslib
-QT-SQL-mysql-I/usr/local/tslib/include-L/usr/local/tslib/lib
-I/usr/local/arm_mysql/include-L/usr/local/arm_mysql/lib
The red part shows the compilation conditions added to the QT library for MySQL driver compilation and the MySQL header file and library dependencies (the MySQL directory has been compiled and installed before)
Since MySQL drivers are compiled into the QT library, the process of porting to the Development Board is the same as that of porting QT, and libmysql In the MySQL lib directory that has been cross-compiled. copy so.16 to the open/lib file. Otherwise, the shared library cannot be found.
Note: At the beginning, I have always reported errors during compilation on ubuntu12.04, but I haven't changed the modified libraries for a long time. I thought that I ran to fedora to compile QT on fedora14 without any errors, it was a good trip, and it was compiled more than an hour later (the VM may be slow)