在gcc编译器中链接自定义标头

时间:2014-03-25 22:44:42

标签: c gcc

我无法编译程序。该程序的标题是

#include <stdio.h>
#include <stlib.h>
#include "useCurses.h"
#include "robotModel.h"
#include "maze.h"

我尝试使用

进行编译
  

gcc -I / path / to / folder program.c -o program.exe -lncurses

并收到以下错误消息:

  

对(函数)的未定义引用

对于program.c中调用的每个函数,它包含在robotModel.h或maze.h中。 文件maze.h和robotModel.h都包含在文件maze.c和robotModel.c中定义的函数的原型,所有这些函数都与program.c位于同一文件夹中。我忘了在这做什么?

编辑: robotModel.h:

#ifndef ROBOTMODEL_H
#define ROBOTMODEL_H
(function prototypes)
#endif

robotModel.c:

#include "robotModel.h"
(function definitions, no main())

maze.h:

#ifndef MAZE_H
#define MAZE_H

#include "robotModel.h"
(function prototypes)
#endif

maze.c:

#include "maze.h"
#include <stdio.h>
#include <stdlib.h>
(function definitions, no main())

当在main()或program.c中的另一个函数中调用maze.h或robotmodel.h中定义的函数时,编译器错误指向每个实例。

编辑2:我使用

让它工作
  

gcc program.c maze.c robotModel.c -o program.exe -lncurses

1 个答案:

答案 0 :(得分:0)

您还应该编译maze.crobotModel.c源文件。 - 马赫什