在 Dev-C++ 中,为啥我导入了项目所需的文件却无法编译我的项目?

Posted

技术标签:

【中文标题】在 Dev-C++ 中,为啥我导入了项目所需的文件却无法编译我的项目?【英文标题】:In Dev-C++, Why cannot I compile my project although I imported the project required files?在 Dev-C++ 中,为什么我导入了项目所需的文件却无法编译我的项目? 【发布时间】:2020-06-10 09:52:42 【问题描述】:

在 Dev-C++ 中,我想创建一个项目来对表格进行排序,这就是我将源文件带入我的项目的原因。但是当我想编译我的项目时,编译器给了我一个错误,它无法识别函数。

这是我的第一个源文件。

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#define LENGTH 5

我将计算机中的第一个文件保存为“Preprocessors.c”。

第二个源文件:

void Selective_sorting(int Table[], int Length)

     int *Temporary;
     int Smallest_index;

     for(register short int Outside = 0; Outside < Length; Outside++)
     
         Smallest_index = Outside;

         for(register short int Inside = (Outside + 1); Inside < Length; Inside++)
         
             if(*(Table + Inside) < *(Table + Smallest_index))
                 Smallest_index = Inside;
         

         Temporary = (int*) malloc(sizeof(int));
         if(!Temporary)
         
             printf("An error occurred while allocating memory.\n");
             exit(1);
         

         *Temporary = *(Table + Smallest_index);
         *(Table + Smallest_index) = *(Table + Outside);
         *(Table + Outside) = *(Table + Smallest_index);

         free(Temporary);
     
 

我在计算机中将第二个源文件保存为“Selective_func.c”。

以及运行程序的第三个源代码:

int main()

    int table[5] = 9, 7, 6, 5, 3;
    Selective_sorting(table, 5);

    for(register short int Counter = 0; Counter < 5; Counter++)
    printf("%d\n", *(table + Counter));

    return 0;

我将第三个源文件保存在计算机中为“Main_func.c”。

我把源文件带进我的项目,当我编译项目时,出现了这个错误:

【问题讨论】:

使用这些包含的函数,包含必须对 .c 文件可见。所以你不应该有一些神秘的“Preprocessors.c”——那个文件什么也没做。相反,您应该在函数所在的 .c 文件中包含一个 .h 文件。此外,代码本身存在多个问题,但这是另一回事。 【参考方案1】:

您没有正确包含文件。

您的主文件需要包含它需要的标头:例如 stdlib.h 和 stdio.h,但还需要一个定义 void Selective_sorting(int Table[], int Length); 的标头。

那么你的实现文件也应该包含与void Selective_sorting(int Table[], int Length);原型相同的头文件+它使用的东西所需的任何头文件(例如stdio.h,因为你使用printf())。

基本上你应该永远记住,如果你不包含任何你想要编译的 C 文件(.c 或 .h)不知道任何函数、变量或类型(系统内置的除外)定义它的头文件。

【讨论】:

以上是关于在 Dev-C++ 中,为啥我导入了项目所需的文件却无法编译我的项目?的主要内容,如果未能解决你的问题,请参考以下文章

扩展类所需的不一致?

为啥好多东西运行不了。出现“找不到所需的.dll文件?”

为啥云构建说我缺少我的项目所需的“compute.instances.create”权限?

为啥打开程序是总是显示“找不到所需的.DLL文件”

为啥要执行权限以及在 c(Linux) 中创建文件所需的写权限? [关闭]

如何避免在每个测试文件中导入组件所需的所有内容?