首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用arm-linux-gnueabihf编译mysql库时跳过不兼容错误

使用arm-linux-gnueabihf编译mysql库时跳过不兼容错误
EN

Ask Ubuntu用户
提问于 2014-09-04 17:45:40
回答 1查看 2.1K关注 0票数 0

所有与mysql库相关的问题都使用标准gcc编译器。但是,我需要编译一个运行在beaglebone黑色设备上的项目。因此,我使用的是arm-linux-gnueabihf-gcc而不是gcc

这里是我的环境:

  • Ubuntu - 32位
  • 使用eclipse露娜c++
  • mysql在beaglebone上运行良好。现在,我正在编写使用C++访问mysql的代码。

请帮忙纠正我的错误。谢谢使用标准gcc编译,所以这意味着我已经安装了。

代码语言:javascript
复制
apt-get install libmysqlclient-dev
apt-get install libmysqlcppconn-dev
apt-get install mysql-client
apt-get install mysql-server

所以,这就是我编译后得到的:

代码语言:javascript
复制
12:38:15 **** Incremental Build of configuration Debug for project arm2 ****
make all 
Building file: ../src/arm2.cpp
Invoking: GCC C++ Compiler
arm-linux-gnueabihf-g++ -I/usr/arm-linux-gnueabihf/include/mysql -I/usr/arm-linux-gnueabihf/include/mysql/cppconn -I/usr/arm-linux-gnueabihf/include/c++/4.8.2 -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/arm2.d" -MT"src/arm2.d" -o "src/arm2.o" "../src/arm2.cpp"
../src/arm2.cpp: In function ‘int main()’:
../src/arm2.cpp:32:10: warning: variable ‘driver’ set but not used [-Wunused-but-set-variable]
  Driver *driver;
          ^
Finished building: ../src/arm2.cpp

Building target: arm2
Invoking: GCC C++ Linker
arm-linux-gnueabihf-g++ -L/usr/arm-linux-gnueabihf/lib -L/usr/arm-linux-gnueabihf/libsf -L/usr/lib/mysql -L/usr/lib -o "arm2"  ./src/arm2.o   -lmysqlcppconn
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/bin/ld: skipping incompatible /usr/arm-linux-gnueabihf/lib/libmysqlcppconn.so when searching for -lmysqlcppconn
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/bin/ld: skipping incompatible /usr/lib/libmysqlcppconn.so when searching for -lmysqlcppconn
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/bin/ld: skipping incompatible /usr/lib/libmysqlcppconn.a when searching for -lmysqlcppconn
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/bin/ld: skipping incompatible /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/../lib/libmysqlcppconn.so when searching for -lmysqlcppconn
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/bin/ld: skipping incompatible /usr/lib/../lib/libmysqlcppconn.so when searching for -lmysqlcppconn
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/bin/ld: skipping incompatible /usr/lib/../lib/libmysqlcppconn.a when searching for -lmysqlcppconn
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/bin/ld: skipping incompatible /usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/lib/libmysqlcppconn.so when searching for -lmysqlcppconn
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/bin/ld: skipping incompatible //usr/lib/libmysqlcppconn.so when searching for -lmysqlcppconn
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/bin/ld: skipping incompatible //usr/lib/libmysqlcppconn.a when searching for -lmysqlcppconn
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/bin/ld: skipping incompatible /usr/arm-linux-gnueabihf/lib/libmysqlcppconn.so when searching for -lmysqlcppconn
/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/bin/ld: cannot find -lmysqlcppconn
collect2: error: ld returned 1 exit status
make: *** [arm2] Error 1

12:38:18 Build Finished (took 2s.451ms)
EN

回答 1

Ask Ubuntu用户

发布于 2015-02-07 22:28:38

首先必须删除这些选项,因为链接器试图在这些路径(显然没有.so文件)中找到:-L/usr/lib/mysql -L/usr/lib,并查找这些文件并将这些文件从您的BBB复制到您的计算机:

代码语言:javascript
复制
libmysqlclient.a
libmysqlclient.so
ld-linux.so.3
ld-linux-armhf.so.3
libmysqlclient.a
libmysqlclient.so
libz.so.1

然后将这些文件添加到链接器选项中。

最后,将这些选项添加到链接器中:

代码语言:javascript
复制
-L/usr/lib/arm-linux-gnueabihf -L/lib/arm-linux-gnueabihf -lmysqlclient -lpthread -lz -lm -lrt -ldl
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/520160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档