gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:55:48 29 4
gpt4 key购买 nike

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

我的目标是使头文件与我正在使用的现有头文件(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函数,其余的只是为了测试。

最佳答案

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

关于无法创建可从我的程序访问的 C 头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13957801/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com