我正在尝试使用在LPCXpresso上为LPC1769创建一个项目。我有一个C文件调用

#include <string.h>
int main()
{
    //some stuff
    strnlen(SomeString, someInt);
}

我收到一个错误:
Undefined reference to 'strnlen'

奇怪的是,strcpy,strncpy或其他常见的字符串函数没有问题。

我正在为Cortex-M3处理器构建
使用的编译器是:arm-none-eabi-gcc
在Eclipse中,我已勾选了MCU链接器选项:无启动或默认库
我在Ubuntu上运行Eclipse

尽管仅通过使用strlen来绕过它可能很容易,但实际上我在使用使用strnlen的库时遇到了一个问题,并且我不想弄乱库的源代码。

最佳答案

strnlen函数是(直到最近)一个特定于Linux的函数(一些文档,例如GNU libc manual仍然说它是“GNU扩展”)。当前的manual page表示它是POSIX.1-2008的一部分。由于您是交叉编译的,因此目标计算机的运行时库可能没有此功能。 2011年的forum posting就这么说。

09-06 20:12