gcc -Wall -Werror -Wextra -Llibft -lft -Ilibft/include main.c
当我使用上面的命令时,链接器会引发以下错误消息:
/tmp/ccwCUgov.o: In function `main':
main.c:(.text+0xc): undefined reference to `ft_putendl'
collect2: error: ld returned 1 exit status
我不得不提到libft.a
目录中确实存在正在使用的库libft/
。
我目前正在使用Ubuntu 18.04LTS进行编码(2019年),但是我从未在macOS上遇到过此类问题。
main.c
中的代码:
#include "libft.h"
int main()
{
ft_putendl("Hello world!");
return (0);
}
答案 0 :(得分:0)
将-lft
放在链接命令的最后,如下所示:
gcc -Wall -Werror -Wextra -Llibft -Ilibft/include main.c -lft
这将导致libft
最后被链接,这将导致包含所需的功能(链接器仅包含所需的对象,并且在处理libft.a
时,这些对象不是'还需要)。
这可能在Mac上有效,因为Mac包含了存档中的所有对象,或者因为它最后链接了库。