C中静态库中的函数声明

时间:2014-08-11 09:50:39

标签: c gcc static-libraries compiler-warnings ar

当我尝试使用静态库编译程序时,我遇到了问题。 我创建了我的.c文件的对象文件gcc -c ft_putstr.c。然后我执行ar -rcs libft.a ft_putstr.o,然后我制作gcc main.c -L. -lft,然后我

  

警告:函数'ft_putstr'的隐式声明无效   C99。

创建二进制文件,但即使它是这样的,我也不想要这个警告。 如果我在GCC上有-std="c89"标志,但我使用C99就可以了。

这是我的主要内容:

int main(void)
{
     ft_putstr("Bonjour");
     return (0);
}

这是我的ft_putstr.c:

#include <unistd.h>

    void    ft_putstr(char *str) 
    {
         (*str) ? write(1, str, 1), ft_putstr(str + 1) : 0; 
    }

1 个答案:

答案 0 :(得分:5)

您应该包含一个带有

声明的头文件
void    ft_putstr(char *str);

或者您可以在main.c

中插入此行
extern void    ft_putstr(char *str);