0%

嵌入式开发--交叉编译libmysqlclient

交叉编译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配置

配置允许远程连接

交叉编译

  1. 安装cmake
1
sudo apt-get install cmake
  1. 配置CMakeLists.txt
1
2
SET(CMAKE_CXX_COMPILER "arm-none-linux-gnueabi-g++")
SET(CMAKE_C_COMPILER "arm-none-linux-gnueabi-gcc")
  1. cmake配置
1
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=安装路径
  1. 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
2
36   SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -lm")
37 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fno-rtti -fno-exceptions -lm")

参考:http://www.someabcd.com/SQL/2688599305.html

  1. 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