Ignorando erro incompatível ao compilar a biblioteca mysql usando arm-linux-gnueabihf

0

Todos os problemas postados relacionados à biblioteca mysql usam o compilador gcc padrão. No entanto, eu preciso compilar um projeto em execução em um dispositivo preto beaglebone. Portanto, estou usando arm-linux-gnueabihf-gcc em vez de gcc .

Aqui está o meu ambiente:

  • Ubuntu - 32 bits
  • usando o eclipse luna c ++
  • mysql rodando bem no beaglebone. Agora, estou escrevendo código para acessar o mysql usando C ++.

Por favor ajude a corrigir o meu erro. obrigado compilar usando um gcc padrão funciona bem, então isso significa que eu já instalei

apt-get install libmysqlclient-dev
apt-get install libmysqlcppconn-dev
apt-get install mysql-client
apt-get install mysql-server

Então, é isso que eu recebo depois de compilar:

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)
    
por user2616989 04.09.2014 / 19:45

1 resposta

0

Você deve primeiro remover essas opções porque seu vinculador está tentando encontrar nesses caminhos (que claramente não possuem os arquivos .so): -L / usr / lib / mysql -L / usr / lib e encontre e copie esses arquivos do seu BBB para sua máquina:

libmysqlclient.a
libmysqlclient.so
ld-linux.so.3
ld-linux-armhf.so.3
libmysqlclient.a
libmysqlclient.so
libz.so.1

adicione -L esses arquivos à sua opção de vinculador.

Por fim, adicione essas opções ao seu vinculador:

-L/usr/lib/arm-linux-gnueabihf -L/lib/arm-linux-gnueabihf -lmysqlclient -lpthread -lz -lm -lrt -ldl
    
por mefmef 07.02.2015 / 23:28