有人告诉我要使用 strlcpy
函数而不是这样的 strcpy
#include <stdio.h>
#include <string.h>
void main()
{
char var1[6] = "stuff";
char var2[7] = "world!";
strlcpy(var1, var2, sizeof(var2));
printf("hello %s", var1);
}
当我编译文件时 它给了我以下错误:
C:\Users\PC-1\AppData\Local\Temp\ccafgEAb.o:c.c:(.text+0x45): undefined referenc
e to `strlcpy'
collect2.exe: error: ld returned 1 exit status
注意:我已经安装了MinGW(用于Windows 的Minimalist GNU)并且gcc 版本是4.7.2
问题是什么?
最佳答案
undefined reference to `strlcpy'
当链接器(如果您使用的是 gcc,则为 collect2
)无法找到它提示的函数的定义(不是声明或原型(prototype),但是定义,函数代码定义的地方)。
在您的情况下,这可能会发生,因为 strlcpy
没有共享对象或库。要链接的代码。如果你确定有一个包含代码的库并且你想链接它,请考虑使用 -L<path_to_library>
指定库的路径。传递给编译器的参数。
关于c - 当我在 c 中使用 strlcpy 函数时,编译器给我一个错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18547251/