我正在尝试使用 shell 脚本创建一个静态库。
为了创建库,我使用了以下脚本:
gcc -c -Wall -Wextra -Werror *.c
ar -cr libft.a *.o
5 个 .c 文件中有 5 个不同的函数。
现在我想测试这个库并用这个内容创建了一个 main.c 文件:
#include "libft.a"
int main(void)
{
ft_putstr("hello");
}
编译 main.c(使用 gcc main.c)返回 419 警告和至少 20 个错误,看起来像这样:
./libft.a:4:492: warning: null character ignored [-Wnull-character]
...<U+0000>UH<89><E5>H<83><EC><U+0010>@<88>}<FF><BF><U+0001><U+0000><U+0000><U+0000>H<8D>u...
在此之前,我使用 .h 文件工作正常,但这次我不应该创建 .h 文件,所以我不知道该怎么做。
答案 0 :(得分:0)
#include "file_name"
表示“请将文件 file_name
的内容复制并粘贴到此处”,因此不应与 .a
文件一起使用。
您可以编写直接使用的函数声明,而不是使用 .h
文件。
/* guessed from usage, please use correct argument and return type */
void ft_putstr(const char*);
int main(void)
{
ft_putstr("hello");
}
然后编译与库链接的源代码:
gcc main.c -lft