我的静态库是使用我拥有的所有功能编译的,但是当我使用它时,我收到了错误:
warning: implicit declaration of function 'ft_putnbr' is invalid in C99 [-Wimplicit-function-declaration]
我的源代码:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(void)
{
int fd;
fd = open("42", O_CREAT | O_WRONLY, S_IRUSR, S_IWUSR);
ft_putnbr(fd);
return (0);
}
我正在使用此选项进行编译:
gcc main.c -L. -lft
我的静态库已命名并包含ft_putnbr函数:libft.a
但是当我写道:include&#34; libft.h&#34;它正在工作中
如果没有包含&#34; libft.h&#34;它为什么不工作? ?
答案 0 :(得分:0)
因为静态库仅在链接阶段由链接器读取(并且静态库无论如何都不包含其函数签名)。编译器需要知道这个函数在编译阶段是什么。因此,您需要包含提供函数签名的头文件。