C++ 如何将库函数加载到main()C++;

C++ 如何将库函数加载到main()C++;,c++,static-libraries,.lib,C++,Static Libraries,.lib,使用:VisualStudio2008 问题: 我有一个库math.lib,它的函数如下: #include <cmath> #include<stdio.h> #include <conio.h> int addNumbers(int a, int b) { return a + b; } 有谁能帮我解决这个问题吗?从外观上看,您可能忘了将math.lib类包含到主代码文件中 试试这个: #include <stdio.h> #in

使用:VisualStudio2008

问题:

我有一个库math.lib,它的函数如下:

#include <cmath> 
#include<stdio.h>
#include <conio.h>

int addNumbers(int a, int b)
{
    return a + b;
}

有谁能帮我解决这个问题吗?

从外观上看,您可能忘了将math.lib类包含到主代码文件中

试试这个:

#include <stdio.h>
#include "math.lib"    // New line: Quotes tell compiler that it is not a standard library

/* Rest of main code */
#包括
#include“math.lib”//New line:引号告诉编译器它不是标准库
/*主代码的其余部分*/
现在,编译器将知道如何定义
math.lib
及其内部的函数


编辑:还要确保您的
math.lib
源代码与主源代码位于同一目录中,或者在
#include
指令中将
math.lib
替换为文件路径。

问题在于您未能声明或原型化您在源代码模块中调用的函数

C++要求您要么声明函数,要么在使用该函数之前显示整个函数体。因此,对于您的情况,应该是:

#include<stdio.h>

int addNumbers(int, int);

int main()
{
    printf("show: %d", addNumbers(3,5));
    getchar();
}
然后

#包括
#包括“mylib.h”
int main()
{
printf(“显示:%d”,添加编号(3,5));
getchar();
}
编译器实际上并不关心函数是否确实存在,只要您在调用函数之前声明了它即可


在链接阶段,链接器现在将在编译生成的目标代码中,或在指定给链接器的外部库中搜索您正在调用的函数。

您希望您的主函数如何知道另一个函数?如果您没有包含stdio.h,它会知道关于printf的信息吗?您需要提供/包括一个带有函数声明的头。您创建的库是
math.lib
吗?如果是这样,不要将它包含在源文件的编译中,只在链接命令行中使用它。您需要一个包含函数声明的标题,如
mathlib.h
。您将在带有
main()
的文件中以及在定义函数的文件中使用它。您可能会将包含函数的文件构建到数学库中(
math.lib
),然后在命令行上将其与包含
main()
@MohammedShereif的对象文件链接在一起(以及之后)——我的库构建部分会有什么问题吗?——扩展名<代码> .LIB < /C> >用于Windows环境编写的大多数程序,是指外部导入库或静态库,而不是C++头文件。因此,你选择的名字令人困惑。对此我很抱歉。顺便说一句如果我的math.lib工作正常,那么错误是如何发生的?我把路径和库名链接到项目链接器@ MohammedShereif中,然后就如何构建C++程序感到困惑。那是C++头文件吗?如果是的话,那么它就不参与链接过程。我已经尝试过了。但是出现了另一个错误
致命错误C1083:无法打开include文件:“math.lib”:没有这样的文件或目录
证明我只对了一半。Visual Studio确实有一个
#导入
。您可以
#导入“math.lib”
以将其链接,但仍需要
#包含“something.h”
以获取包含在math.lib中的内容声明的标题。找到
math.lib
的源文件,并将其移动到与主源文件相同的目录中@MohammedShereif@user4581301是的,我正要这么说。我一定是用visual studio做了很多什么对不起。我会留下评论,这样我在公共场合看起来像个傻瓜。
#include <stdio.h>
#include "math.lib"    // New line: Quotes tell compiler that it is not a standard library

/* Rest of main code */
#include<stdio.h>

int addNumbers(int, int);

int main()
{
    printf("show: %d", addNumbers(3,5));
    getchar();
}
#ifndef MYLIB_H
#define MYLIB_H

int addNumbers(int, int);

#endif
#include<stdio.h>
#include "mylib.h"

int main()
{
    printf("show: %d", addNumbers(3,5));
    getchar();
}