交叉编译libmysqlclient连接mysql数据库
参考
https://blog.csdn.net/Aa_lihua/article/details/104230081
https://blog.csdn.net/lc315yuhuofei/article/details/103711181
开发板
ip 192.168.1.136
ubuntu 192.168.1.9
feodra 192.168.1.8
主机 192.168.1.10
mysql server配置
配置允许远程连接
交叉编译
- 安装cmake
1 | sudo apt-get install cmake |
- 配置CMakeLists.txt
1 | SET(CMAKE_CXX_COMPILER "arm-none-linux-gnueabi-g++") |
- cmake配置
1 | cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=安装路径 |
- make
报错1:error: static declaration of ‘rint’ follows non-static declaration
解决方案:将include/my_global.h中的rint函数注释掉即可
报错2:erro:undefined reference floor
解决方案:在MakeLists.txt 36 37行set中加入-lm
1 | 36 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -lm") |
参考:http://www.someabcd.com/SQL/2688599305.html
- make install
进行安装 make install,发现其并没有按照之前的配置的安装路径进行安装(竟然安装到我的mysql中去),百思不得其解
最后找到一个配置安装路径的文件cmake_install.cmake
发现配置的应该是 /usr/local/mysql 是默认的配置路径(明明CMAKE_INSTALL_PREFIX已经定义) 最后直接将默认路径给改成自己想要的路径并重新进行make install即可
编译
arm-none-linux-gnueabi-gcc -o test testmysql.c -L/home/vmuser/mysql/mysql-connector-c-6.0.2/install/lib -lmysqlclient
scp test到板子
添加环境变量export LD_LIBRARY_PATH=/media/lib/:$LD_LIBRARY_PATH
./test