【发布时间】:2019-08-13 04:53:08
【问题描述】:
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/目录中确实存在使用中的库libft.a。
我现在(2019)在 Ubuntu 18.04LTS 上编码,但我从未在 macOS 上遇到过这样的问题。
main.c中的代码:
#include "libft.h"
int main()
{
ft_putendl("Hello world!");
return (0);
}
【问题讨论】:
-
语句
#include "libft.h"告诉编译器先在与源代码相同的目录中查找,然后在默认目录中查找。 -
@WeatherVane,
#include指令与链接有何关系? -
@r3musn0x 问题说编译器错误,但现在你提到它 ld 是一个系统的链接器。 MSVC 会说:unresolved external symbol ft_putendl referenced in function _main,表示链接器错误。
-
@WeatherVane 我说我在我的 Mac 上编译了这段代码,没有弹出错误。我不明白为什么在 ubuntu 上会发生这种情况
-
试着把
-lft放在最后。
标签: c