私はこれにしばらく取り組んできました。私はこれらのファイルを持っています:
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
と、ヘッダーファイル内のすべての未解決の参照が取得されます。
私は何をすべきか?