为什么CodeBlocks编译器无法识别我在C的头文件中声明的函数?

我最近研究了使用C中的头文件定义函数。 我在网上遵循了一个教程,但是遇到了一个问题: 如果我使用命令提示符并运行在项目文件夹中创建的可执行文件,它将从main.c文件中获取输入,并像我期望的那样将其传递给函数。

The command that I typed in Command Prompt was: gcc matrix_product.c main.c

在main中,我可以调用该函数(我将其命名为matrix_product),并且它可以识别该函数。但是,当我尝试在CodeBlocks中构建它时,编译器指出2个错误: 未定义对“ matrix_product”的引用 错误:1d返回1退出状态

这是代码:

main.c
#include stdio.h
#include stdlib.h
#include "matrix_product.h"
#define N 3

int m[N][N]={
          {1,2,3},
          {4,5,6},
          {7,8,9}
        };

matrix_product(m,3);

return 0;
}
matrix_product.c
#include stdio.h
#include "matrix_product.h"

void matrix_product(int m[][3],int DIM)
{
    int i,j,k;
int tmp[DIM][DIM];

 for(i=0;i<DIM;i++){
    for(j=0;j<DIM;j++){
        tmp[i][j]=m[i][j];
        m[i][j]=0;
    }
}

for(i=0;i<DIM;i++){
    for(j=0;j<DIM;j++){
        for(k=0;k<DIM;k++){
            m[i][j]+=tmp[i][k]*tmp[k][j];
            }
        }
    }
}
matrix_product.h
#ifndef MATPROD
#define MATPROD

void matrix_product(int m[][3],int DIM);

#endif // MATPROD