当我编译时,我收到一组奇怪的错误。 这是我首先编译的。 (这是从我的 makeFile 生成的。)
gcc -Wall -g -std=gnu99 -pedantic -c error.c -o error.o
gcc -Wall -g -std=gnu99 -pedantic -c agent.c -o agent.o
gcc -Wall -g -std=gnu99 -pedantic -c io.c -o io.o
gcc -Wall -g -std=gnu99 -pedantic -c map.c -o map.o
然后就是将它们与我的处理程序连接在一起;我用这个:
gcc -Wall -g -std=gnu99 -pedantic error.o agent.o io.o map.o handler.c -o handler
它输出一条我找不到相关信息的消息。有什么想法吗?
Undefined symbols for architecture x86_64:
"_m", referenced from:
_print_map in io.o
_read_map in io.o
_check_row in map.o
_get_start_pos in map.o
_move_one_step in map.o
_displayMoveOnMap in map.o
_reset_map in map.o
...
(maybe you meant: _reset_map, _move_one_step , _print_map , _read_map , _main )
我认为这只是一个小小的 Makefile 调整,但我找不到太多关于这些错误的信息。
听起来你在io.c和map.c中都有一个
extern m
(我不知道什么类型,或者即使它是一个函数),但没有在任何地方定义它。我会在 map.h
中查找 extern 声明,尽管这只是一个猜测。