如何将库函数加载到 main() C++
How to load a library function to main() C++
使用:Visual Studio 2008
问题:
我有一个库 math.lib,它的功能如下:
#include <cmath>
#include<stdio.h>
#include <conio.h>
int addNumbers(int a, int b)
{
return a + b;
}
我的主要功能是:(更新)
#include<stdio.h>
void main()
{
printf("show: %d", addNumbers(3,5));
getchar();
}
我在 Visual Studio 中包含了路径和 link 输入。但是我得到一个错误:
error C3861: 'addNumbers': identifier not found
谁能帮我解决这个问题?
从表面上看,您可能忘记了将 math.lib class 包含到您的主代码文件中。
试试这个:
#include <stdio.h>
#include "math.lib" // New line: Quotes tell compiler that it is not a standard library
/* Rest of main code */
现在编译器知道如何定义math.lib
和里面的函数了。
编辑:还要确保您的 math.lib
源与主源位于同一目录中,或者将 math.lib
替换为 #include
指令中的文件路径。
问题是您未能声明或原型化您在源模块中调用的函数。
C++ 要求您要么声明函数,要么在使用该函数之前显示整个函数体。所以对于你的情况,它将是:
#include<stdio.h>
int addNumbers(int, int);
int main()
{
printf("show: %d", addNumbers(3,5));
getchar();
}
请注意,通常,您会将函数声明和原型放在头文件中,并包含该头文件。假设您的头文件的名称是 "mylib.h":
#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();
}
编译器实际上并不关心该函数是否实际存在,只要您在调用该函数之前声明了它即可。
在 link 阶段,linker 现在将搜索您正在调用的函数,或者在您的目标代码中编译已经产生,或者在您指定给 linker.
的外部库中
使用:Visual Studio 2008
问题:
我有一个库 math.lib,它的功能如下:
#include <cmath>
#include<stdio.h>
#include <conio.h>
int addNumbers(int a, int b)
{
return a + b;
}
我的主要功能是:(更新)
#include<stdio.h>
void main()
{
printf("show: %d", addNumbers(3,5));
getchar();
}
我在 Visual Studio 中包含了路径和 link 输入。但是我得到一个错误:
error C3861: 'addNumbers': identifier not found
谁能帮我解决这个问题?
从表面上看,您可能忘记了将 math.lib class 包含到您的主代码文件中。
试试这个:
#include <stdio.h>
#include "math.lib" // New line: Quotes tell compiler that it is not a standard library
/* Rest of main code */
现在编译器知道如何定义math.lib
和里面的函数了。
编辑:还要确保您的 math.lib
源与主源位于同一目录中,或者将 math.lib
替换为 #include
指令中的文件路径。
问题是您未能声明或原型化您在源模块中调用的函数。
C++ 要求您要么声明函数,要么在使用该函数之前显示整个函数体。所以对于你的情况,它将是:
#include<stdio.h>
int addNumbers(int, int);
int main()
{
printf("show: %d", addNumbers(3,5));
getchar();
}
请注意,通常,您会将函数声明和原型放在头文件中,并包含该头文件。假设您的头文件的名称是 "mylib.h":
#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();
}
编译器实际上并不关心该函数是否实际存在,只要您在调用该函数之前声明了它即可。
在 link 阶段,linker 现在将搜索您正在调用的函数,或者在您的目标代码中编译已经产生,或者在您指定给 linker.
的外部库中