C++项目下调用头文件部分函数未被编译

本人尝试将一个长代码分成一个项目下的许多CPP文件和一个头文件,然后报错了

用代码块功能插入代码,请勿粘贴截图

//头文件matrix.h如下
#pragma once
#ifndef _MATRIX_H_
#define _MATRIX_H_
#include<iostream>
#include<cstdio>
#include<cmath>
#include<vector>
using namespace std;
extern int n,m,nn,maxn;//n为馈线数量,m为联络线数量 ,nn为总支路数量 ,maxn为馈线最大节点数 
extern int PSPMnum,PSEEnum,tempnum,PSEnum,Pnum,Qnum,TIEnum,IF1num,IF2num,IF3num,IF4num;
extern double lama,*lamada,*lamadaLP,SAIFI,**IF,miu,miu1,*miuLP,lamada1,SAIDI;
extern int cnt,head[99999];
struct edge{
    int end,next,val;
}extern e[2*99999];
extern int **E,SEnum,FUSEnum,**P,**Q,**c;
vector<int> extern SE;
vector<int> extern FUSE;
vector<int> extern PSPM;
vector<int> extern temp;
vector<int> extern PSEE;
vector<int> extern PSE;
vector<int> extern TIE;
vector<int> extern IF1;
vector<int> extern IF2;
vector<int> extern IF3;
vector<double> extern IF4;
extern int **N,**M,**EX,Enum;
extern bool *QQ;
void createEX();
void createE();
void createSEFUSE();
void createPQ();
void createQQ();
void createPSPM();
void createPSEE();
void createTIE();
void createIF();
void ini();
#endif

//包含主函数的cpp如下
#include "matrix.h"
#include<iostream>
using namespace std;
int n,m,nn=0,maxn=0;//n为馈线数量,m为联络线数量 ,nn为总支路数量 ,maxn为馈线最大节点数 
int PSPMnum=0,PSEEnum=0,tempnum=0,PSEnum=0,Pnum=0,Qnum=0,TIEnum=0,IF1num=0,IF2num=0,IF3num=0,IF4num=0;
double lama,*lamada,*lamadaLP,SAIFI,**IF,miu,miu1,*miuLP,lamada1,SAIDI;
int cnt=0,head[99999];
int **E,SEnum=0,FUSEnum=0,**P,**Q,**c;
vector<int> SE;
vector<int> FUSE;
vector<int> PSPM;
vector<int> temp;
vector<int> PSEE;
vector<int> PSE;
vector<int> TIE;
vector<int> IF1;
vector<int> IF2;
vector<int> IF3;
vector<double> IF4;
int **N,**M,**EX,Enum;
bool *QQ;
inline void getSAIFI()
{
    lamadaLP=new double [nn+1];
    for(int i=0;i<=nn;i++)
    lamadaLP[i]=0;
    for(int i=0;i<IF1num;i++)
    {
        int h=IF1[i*3];
        int l=IF1[i*3+1];
        lamadaLP[l]+=IF1[i*3+2]*lamada[h];
    }
    for(int i=1;i<=nn;i++)
    lamadaLP[i]+=lamada1;
    SAIFI=0;
    for(int i=1;i<=nn;i++)
    SAIFI+=lamadaLP[i];
    SAIFI/=nn;
    return;
}
inline void getSAIDI()
{
    for(int i=0;i<IF2num;i++)
    {
        IF4.push_back((double)IF2[i*3]);
        IF4.push_back((double)IF2[i*3+1]);
        IF4.push_back((double)(IF2[i*3+2]*miu));
        IF4num++;
    }
    for(int i=0;i<IF3num;i++)
    {
        bool flag=1;
        for(int j=0;j<IF4num;j++)
        {
            if(IF4[j*3]==IF3[i*3]&&IF4[j*3+1]==IF3[i*3+1])
            {
                flag=0;
                IF4[j*3+2]+=(double)IF3[i*3+2];
            }
        }
        if(flag)
        {
            IF4.push_back((double)IF3[i*3]);
            IF4.push_back((double)IF3[i*3+1]);
            IF4.push_back((double)IF3[i*3+2]);
            IF4num++;
        }
    }
    miuLP=new double[nn+1];
    for(int i=0;i<=nn;i++)
    miuLP[i]=0;
    for(int i=0;i<IF4num;i++)
    {
        int h=(int)IF4[i*3];
        int l=(int)IF4[i*3+1];
        miuLP[l]+=IF4[i*3+2]*lamada[h];
    }
    for(int i=1;i<=nn;i++)
    miuLP[i]+=miu1;
    for(int i=1;i<=nn;i++)
    SAIDI+=miuLP[i];
    SAIDI/=nn;
    return;
}
int main()
{
    freopen("in.txt","r",stdin);
//    freopen("out.txt","w",stdout);
    ini();
    createEX();    
    createE();
    createSEFUSE();
    createPQ();
    createQQ();
    createPSPM();
    createPSEE();
    createTIE();
    createIF();
    getSAIFI();
    getSAIDI();
    cout<<SAIFI<<endl;
    cout<<SAIDI;
    fclose(stdin);
//    fclose(stdout);
    return 0;
}
报错结果如下

main.o main.cpp:(.text+0x2d): undefined reference to ini()' main.o main.cpp:(.text+0x32): undefined reference to createEX()'
main.o main.cpp:(.text+0x37): undefined reference to createE()' main.o main.cpp:(.text+0x3c): undefined reference to createSEFUSE()'
main.o main.cpp:(.text+0x41): undefined reference to createPQ()' main.o main.cpp:(.text+0x46): undefined reference to createQQ()'
main.o main.cpp:(.text+0x4b): undefined reference to createPSPM()' main.o main.cpp:(.text+0x50): undefined reference to createPSEE()'
main.o main.cpp:(.text+0x55): undefined reference to createTIE()' main.o main.cpp:(.text+0x5a): undefined reference to createIF()'
ini.o ini.cpp:(.rdata$.refptr.e[.refptr.e]+0x0): undefined reference to `e'
collect2.exe [Error] ld returned 1 exit status
25 Makefile.win recipe for target '电力系统可靠性计算.exe' failed

比如这个createEX()头文件的声明有了,但是没看到你在哪里定义