0

我正在使用 i686 机器作为构建平台为 ARM 设置交叉编译工具链。

我已经能够使用工具链来编译一个基本的 C 程序并在目标 ARM 设备上运行它,但是由于 Newlib 只会构建静态库,因此文件大小最终变得太大。

我使用的 GCC 版本和 Newlib 本身都是使用该--enable-shared选项配置的——但在构建时似乎只是忽略了这一点。

我在 Newlib 文档中读到,如果主机和目标机器都是 i*86 机器,那么 Newlib 将使用 libtool 构建自己,它会自动构建共享和静态库 - 但这对 ARM 目标没有多大帮助!

有谁知道将 Newlib 构建为 ARM 设备的共享库而不仅仅是静态的方法?

鉴于 Newlib 旨在用于嵌入式系统,令我惊讶的是,它只能在用于英特尔机器上的本机编译时生成共享库。

谢谢!

4

1 回答 1

0

除 i[3456]86-pc-linux-gnu 以外的平台未启用共享库。他们不能在其他平台上工作(事实上,他们甚至不能在他们想要的平台上工作!)。

于 2019-06-30T15:59:38.847 回答