我编写了我的项目,将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函数,其余的只是用于测试。
答案 0 :(得分:0)
在代码块中,您必须为静态库创建一个不同的项目并构建它。然后,您可以打开主项目的链接器设置(项目 - &gt;构建选项 - &gt;链接器设置选项卡)并将您的库添加到“链接库”列表中。