Can';t创建可从我的程序访问的C头文件

Can';t创建可从我的程序访问的C头文件,c,header,C,Header,我完成了我的项目,将main和c源代码保存在一个文件中,并将头文件保存在代码块的include目录中。 当我从project main函数中调用我的函数时,它编译得非常漂亮。。但是当我将头文件包含到其他文件中以供使用时,编译器无法找到函数。原型在标题中,但它们的定义在另一个文件中的源代码中。我可以访问存储在标题中的预处理器常量和宏,但是函数原型与其源代码之间的链接似乎不存在于实际项目之外 我的目标是使头文件与我正在使用的现有头文件(stdio.h、stdlib.h等)一样。在这方面我找不到任何有

我完成了我的项目,将main和c源代码保存在一个文件中,并将头文件保存在代码块的include目录中。 当我从project main函数中调用我的函数时,它编译得非常漂亮。。但是当我将头文件包含到其他文件中以供使用时,编译器无法找到函数。原型在标题中,但它们的定义在另一个文件中的源代码中。我可以访问存储在标题中的预处理器常量和宏,但是函数原型与其源代码之间的链接似乎不存在于实际项目之外

我的目标是使头文件与我正在使用的现有头文件(stdio.h、stdlib.h等)一样。在这方面我找不到任何有用的东西。帮帮我,我已经干了好几天了

我知道我可以用更简单的函数制作.c文件,但我想挑战,想创建lib文件,而且我是一个性能怪胎(据我所知,使用.h文件而不是.c文件效率更高,但我不记得为什么。)

头文件:

        #ifndef FIRO_H_INCLUDED
        #define FIRO_H_INCLUDED

        #include <stdbool.h>

        #define MA_TA 69

        bool checkprime(unsigned long long);
        int square(int);

        #endif // FIRO_H_INCLUDED
#如果包括
#定义包含的FIRO_H_
#包括
#定义MA_TA 69
bool-checkprime(无符号长-长);
整数平方(整数);
#endif//FIRO_H_包括在内
源代码:

        #include "firo.h"
        #include <math.h>

        bool checkprime(unsigned long long prime)
        {
            unsigned long long root=(unsigned long long)(sqrt(prime)+1);
            unsigned long long i;
            for(i=2; i<=root; i<3?(i++):(i+=2))
            {
                if(prime%i==0)
                return false;
            }
            return true;
        }

        int square(int a)
        {
            return a*a;
        }
#包括“firo.h”
#包括
布尔校验素数(无符号长素数)
{
无符号长根=(无符号长根)(sqrt(素数)+1);
未签名的长i;

对于代码块中的(i=2;i),您必须为静态库创建一个不同的项目并构建它。然后,您可以打开主项目的链接器设置(项目->构建选项->链接器设置选项卡),并将库添加到“链接库”中列表。

您要查找的单词是
链接
。我们可以看看标题吗?在较大的情况下,.h并不比共享库更有效,只是在较小的情况下。特别是对于像C库这样的东西。想到一个系统将C库作为静态库,我会不寒而栗……请告诉我们编译器错误。“我是一个性能怪胎”-在你真正了解性能之前最好不要成为一个性能怪胎。“使用.h文件而不是.c文件效率更高。”“-这根本没有道理。但我必须同意其他评论者的看法。不要试图优化您尚未完全理解的内容。一旦您的程序完成,请对其进行分析,找到瓶颈并修复它们。您会惊讶于实际瓶颈与您期望看到的瓶颈之间的差异。