varesa
varesa

Reputation: 2419

Cross-compiling QT apps for a raspberry pi - Cannot open shared object file

I want to be able to use the QT Creator on my full-sized desktop to be able to develop and compile qt apps and deploy them to the pi.

I followed this guide: http://qt-project.org/wiki/Create#QtonPi_App_SDK

I am trying to get the hello-qtonpi project to compile. Using the compiler and the toolchain for the pi, I get two errors during compiling:

/opt/qtonpi/lib/gcc/armv5tel-qtonpi-linux-gnueabi/4.5.4/../../../../armv5tel-qtonpi-linux-gnueabi/bin/as: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory
/opt/qtonpi/libexec/gcc/armv5tel-qtonpi-linux-gnueabi/4.5.4/cc1plus: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory

I checked that these two libraries were installed on my pi, and the rsynced /lib and /usr/lib from the pi to my sys-root folder.

I tried using the QT Creators Add Library -> System Library tool, and selected e.g. libz.so, as it didn't show the so.1 one. It added the following line to the .pro file:

unix:!macx:!symbian: LIBS += -lz

However it still didn't get rid of the error.

How should I include these libraries or tell the compiler where to look from?

Upvotes: 0

Views: 3894

Answers (1)

Patrice Tisserand
Patrice Tisserand

Reputation: 401

Both error messages about libz and libmpc are not related to target libraries missing but to the host part.

Your cross-compilation toolchain have been built as a dynamic one, so you need to have on your host all libraries resolving dependencies.

Since libz.so.1 is quite common,maybe you are running a 64 bit host but your toolchain have been built for 32 bits. In this case, you need to find package providing 32 bits version of libz.so.1 and libmpc.so.2.

Upvotes: 1

Related Questions