我想用cmake交叉编译ARM的C ++应用程序。因此我在我的ubuntu x86系统上安装了arm-linux-gnueabi-g ++软件包。但是,此程序包不包含成功链接我的C ++应用程序所需的所有第三方库。例如:
Ubuntu x86系统: 包含基本的东西,如
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/libstdc++.so
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/libstdc++.a
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/libgcc.a
...
目标系统(ARM): 如果我直接在ARM系统上编译我的应用程序,还需要安装特定于arm的软件包。因此可以使用更多的库:
/usr/lib/libpq.so
/usr/lib/libpq.a
/usr/lib/arm-linux-gnueabi/libssl.so
/usr/lib/arm-linux-gnueabi/libssl.a
/usr/lib/arm-linux-gnueabi/libkrb5.so.3
由于交叉编译需要额外的库,我的尝试是将所需的第三方库从目标系统手动复制到x86系统。然而,这最终导致了一场灾难,因为链接会显示消息,例如“libssl.so - >需要lib B - >需要缺少lib C”。
如何在我的x86系统上提供这些库以进行交叉编译?