ARM GCC 链接器标志使用外部 newlib 库?

问题描述 投票:0回答:0

我一直在尝试将从 newlib 构建的单独库链接到 ARM GCC 12 的预构建包,这是我从他们的开发人员网站获得的。我已经使用从 ARM GCC 中的文件获取的修改标志重建了 newlib

12.2.mpacbti-rel1-x86_64-arm-none-eabi-manifest.txt
。具体来说,我删除了
--enable-newlib-mb
标志,因为它会导致生成大量额外的构建空间。

使用标志 '-nostdlib'(据我所知,使用外部库而不是默认库是必要的)会导致对 C 库函数的一些未定义引用。其中一些包括 'memcpy''memset''malloc'

我当前使用的链接器标志是:

-nostdlib -L[gcc path]/lib -lgcc -lc -lm

构建的 newlib 库位于 [gcc-install]/lib 目录中。目前这会导致未定义的引用。

编辑: 编译器输出包含对以下内容的未定义引用: 'memset'、'mktime'、'setvbuf'、'strlen'、'strcmp'、'memcpy'、'strftime'、'__aeabi_dcmplt'、'__aeabi_f2d'、'__aeabi_dadd'、'__aeabi_dmul、'__aeabi_d2ulz'、'memmove' 、“modf”、“localtime_r”、“mallinfo”、“_ctype_”、“gettimeofday”、“_errno”、“malloc”和“write”。

gcc build linker arm newlib
© www.soinside.com 2019 - 2024. All rights reserved.