无法创建可从我的程序访问的C头文件

时间:2012-12-19 17:25:36

标签: c header

我编写了我的项目,将main和c源保存在一个文件中,并将头文件保存在codeblocks的include目录中。 当我从项目主函数中调用我的函数时,它编译得很漂亮..但是当我#include使用其他文件的标题时,编译器找不到这些函数。原型位于标题中,但它们的定义位于另一个文件的源代码中。我可以访问存储在头文件中的预处理器常量和宏,但函数原型和它们的源代码之间的链接似乎不存在于实际项目之外。

我的目标是使头文件与我正在使用的现有文件(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

源代码:

        #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;
        }

我希望得到答案,而不是讽刺。我确实在某处读过将代码分成.h文件和源代码分别以某种方式加速访问函数的过程,不要责怪我不知道它是如何工作的。我实际使用的checkprime函数,其余的只是用于测试。

1 个答案:

答案 0 :(得分:0)

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