0

当我编译时,我得到了一组奇怪的错误。这是我首先编译的。(这是从我的 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 的一点调整,但我找不到太多关于这些错误的信息。

4

1 回答 1

1

听起来你extern m在 io.c 和 map.c 中都有一个(我不知道是什么类型,或者即使它是一个函数),但没有在任何地方定义它。我会在 中寻找 extern 声明map.h,尽管这只是一个猜测。

于 2013-09-26T22:58:52.893 回答