c - 对 'specificFunction' 的 undefined reference

标签 c header-files referenceerror

所以我知道 .h 和 .c 文件,但我在编译代码时遇到问题。我缺少一些东西! Main.c 包含“Converter.h”,其中包含

  #ifndef CONVERTER_H
  #define   CONVERTER_H

  void runConverter(char *);

  #endif 

我的转换器.c 文件已实现..

#include "Converter.h"
#include "Stack.h"
#include "Queue.h"

#include <stdio.h>
#include <stdlib.h>

int checkChar(char input);
void printQueue(QueueP que);
void runConverter(char *input){ .... code etc (calls a stack and a queue 
and does stuff)}

问题是,我在每个文件中都收到 undefined reference 。 .c 未在 Stack.h 或 Queue.h 中找到信息,并且 converterTester 未找到我的主 runConverter 函数。有点困惑,但我认为这是一件小事。有什么帮助吗?

最佳答案

没有看到其他文件,也不知道如何构建可执行文件,纯粹是猜测......

您需要编译每个源,并将所有对象链接在一起:

gcc -g -O2 -Wall -c Converter.c
gcc -g -O2 -Wall -c Stack.c
gcc -g -O2 -Wall -c Queue.c
gcc -g -o pgm Converter.o Stack.o Queue.o

前三行中的 -c (仅编译)标志至关重要,您不希望编译器尝试一次性创建可执行文件。不,编译器不知道您想要在从 Converter.c 获取的可执行文件中包含哪些其他部分。在[SO]上,我们非常擅长猜测,但猜测是人类的事情,而不是编译器的事情。

关于c - 对 'specificFunction' 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22259856/

相关文章:

C编程使用sprintf处理va_args?

c - 如果 C 只能返回一个值(int、char 等),那么它如何返回字符串文字(字符数组)?

c++ - loadlibrary 和 C++ 头文件

c - 错误 : field ‘nm_creds’ has incomplete type

javascript - 如何在嵌入中调用 .username 属性? (不和谐.js)

C - 循环内的 fprintf 和 printf 不打印到屏幕

c++ - 与 OpenGL 的减法混合?

c - 如何安装 mcrypt 并将 mcrypt.h 添加到我的 C 程序文件中?

javascript - jsPDF 引用错误 : window is not defined

javascript - QML 报告 ReferenceError : XYZ is not defined on C++ object added to context