我有几个.h文件,这些文件都包含在.c文件的开头。

当我使用-c标志编译.c文件时:

gcc -Wall -c parserv9-3.c


没有错误或任何警告。

但是,当我删除-c标志时,它在临时目标文件中给出了错误。

那就是我跑步的时候

gcc -Wall parserv9-3.c


我收到以下错误:

/tmp/cc5IWBiC.o: In function `parseInputSourceCode':
parserv9-3.c:(.text+0x204b): undefined reference to `getStream'
collect2: error: ld returned 1 exit status


问题是什么?任何帮助将不胜感激。

最佳答案

-c标志表示仅编译,不链接。删除它时-gcc还将对象链接到可执行文件(而是调用ld命令),然后它必须找到所有引用的外部符号。

在您的情况下,符号getStream不存在。它可能在不同的.c文件中。

关于c - 在gcc上编译时目标文件中的错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15404246/

10-11 10:30