我正在为ARM设置交叉编译工具链,使用i686机器作为构建平台。
我已经能够使用工具链编译一个基本的C程序并在目标ARM设备上运行它,但由于Newlib将只构建静态库,文件大小最终会太大。
我使用的GCC版本和Newlib本身都是使用--enable-shared选项进行配置的--但它似乎在构建时忽略了这一点。
我在Newlib文档中读到,如果主机和目标机器都是i*86机器,那么Newlib将使用libtool构建自己,libtool自动构建共享库和静态库-但这对ARM目标没有太大帮助!
有没有人知道如何将Newlib构建为ARM设备的共享库,而不仅仅是静态构建?
鉴于Newlib旨在用于嵌入式系统,它只能在Intel机器上用于本机编译时才能生成共享库,这让我感到惊讶。
谢谢!
发布于 2019-06-30 23:59:39
除i345686-pc-linux-gnu以外的平台不启用共享库。他们不能在其他平台上工作(事实上,他们甚至不能在他们想要的平台上工作!)。
https://stackoverflow.com/questions/48386555
复制相似问题