【问题标题】:Linking custom headers in gcc compiler在 gcc 编译器中链接自定义头文件
【发布时间】:2014-03-25 22:44:41
【问题描述】:

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

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

我试过用

编译

gcc -I/path/to/文件夹 program.c -o program.exe -lncurses

并得到以下错误信息:

对(函数)的未定义引用

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

编辑: 机器人模型.h:

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

robotModel.c:

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

迷宫.h:

#ifndef MAZE_H
#define MAZE_H

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

迷宫.c:

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

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

编辑 2:我使用

让它工作

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

【问题讨论】:

  • 你也应该编译maze.c, robotModel.c源文件。
  • 能否请您发布useCurses.hrobotModel.hmaze.h,以及编译器错误指向的相关行?

标签: c gcc


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    • 2012-09-08
    • 2016-02-12
    相关资源
    最近更新 更多