c - 当我在 c 中使用 strlcpy 函数时,编译器给我一个错误

标签 c string gcc linker

有人告诉我要使用 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/

相关文章:

android - 与区域设置无关的 double 和字符串转换

c++ - 字符串的哈希函数

c - C语言main函数中有多少个命令行参数?

c - 从 Dcache (L1) 读取值与全局变量

python - 程序卡在 while 循环不打印

c++ - GCC .data 部分更改

linux - 设置临时环境($PATH)

c - C 中挑剔的 bool 值

谁能简单解释一下 medians of medians 算法?

c++ - 将动态库链接到链接到其他静态库的静态库