我已经为此工作了一段时间。我有这些文件:
main.c
zSim.h
zSim.c
zDynamicArray.h
zDynamicArray.c
zOptions.h
zOptions.c
zMain.h
zMain.c
所有文件和标题都位于同一文件夹中。
我的主要有以下内容:
#include "zDynamicArray.h"
#include "zOptions.h"
#include "zMain.h"
#include "zSim.h"
#include <stdio.h>
#include <math.h>
我正在使用头卫。例如,这是来自我的 zSim.h 文件:
#ifndef SIM_H
#define SIM_H
#include "zDynamicArray.h"
#include "zOptions.h"
//This Header is accountable
//for all Simulation Related things.
int Simulate(SIMOPT so,PRINTOPT po);
#endif
这是我的 zSim.c 代码的一个片段(也许我在这里做错了什么?):
#define M_PI 3.14159265358979323846
#include "zSim.h"
#include "zDynamicArray.h"
#include "zOptions.h"
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
我正在使用这个 gcc 命令进行编译:
gcc main.c zSim.c zOptions.c zDynamicArray.c zMain.c -o TEST
我也用过:
cc -c main.c
cc -c zSim.c
cc -c ... etc
cc *.o -o TEST
它们都会导致 math.h 库中任何内容的未定义引用。此外,当我使用该gcc -I
命令时,数学仍然未定义。
如果我使用 编译gcc main.c
,我的头文件中的任何内容都会得到未解析的引用。
我该怎么办?