error C3861: “maxmin”: 找不到标识符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了error C3861: “maxmin”: 找不到标识符相关的知识,希望对你有一定的参考价值。

#include<iostream>
using namespace std;
int main()

float a[100];
int n;
cout<<"请输入共有多少金块:"<<endl;
cin>>n;
cout<<"请输入各金块的质量:"<<endl;
for(int i=1;i<=n;i++)
cin>>a[i];
maxmin(a,n);
return 0;

void maxmin(float a[],int n)

float max,min;
max=a[1];
min=a[1];
for(int i=2;i<n;i++)
if(max<a[i])
max=a[i];
else if(min>a[i])
min=a[i];
cout<<"最大金块质量为:"<<max<<endl;
cout<<"最小金块质量为:"<<min<<endl;

函数声明要写在使用之前 修改方法:

    把void maxmin(float a[],int n) 函数放在main函数之前

    在main函数之前加一句话 ,maxmin的声明:void maxmin(float a[],int n);

参考技术A 需要前置声明

Eclipse/C++ 找不到头文件

【中文标题】Eclipse/C++ 找不到头文件【英文标题】:Eclipse/C++ cannot find header files 【发布时间】:2016-11-05 19:38:07 【问题描述】:

我已经添加了 MacOS X C++ LinkerGCC C++ Compiler IncludesLibraries 库和路径,但我仍然无法 #include 我添加了路径和文件的库。

代码:#include &lt;opencv2/text/ocr.hpp&gt;

错误:

致命错误:找不到“opencv2/text/ocr.hpp”文件

Eclipse 设置:(项目 > 属性 > C/C++ 构建 > 设置) MacOS X C++ 链接器 > 库 库检索路径:/usr/local/Cellar/opencv3/3.1.0_4/lib/usr/local/cellar/opencv3/3.1.0_4/include/opencv2/usr/local/cellar/opencv3/3.1.0_4/include/opencv2/text 图书馆:ocr

GCC C++ 编译器 > 包含 包含路径:/usr/local/cellar/opencv3

Mac 文件结构:ocr.hpp 存在于/usr/local/cellar/opencv3/3.1.0_4/include/opencv2/text

我的想法:

似乎 Eclipse 仍在寻找 ~/cellar/opencv 而不是 ~/cellar/opencv3。 因为我可以#include/usr/local/cellar/opencv/2.4.13.1/include/opencv2 中的任何库,而无需添加 Eclipse 项目设置的路径。 但我不能#include 来自/usr/local/cellar/opencv3/3.1.0_4/include/opencv2 的任何库

我习惯于在 Ruby 中工作,其中库管理非常容易,因此尝试在 C++ 中进行设置有点让我头疼。任何帮助将不胜感激。

【问题讨论】:

您的路径不一致(有些有“地窖”,有些有“地窖”)。 | /usr/local/cellar/opencv3/3.1.0_4/include/opencv2 -- 将“包含”目录设置为库搜索路径有什么意义?链接器没有用于头文件。 |如果 openCV 标头位于 /usr/local/cellar/opencv3/3.1.0_4/include/ 中,为什么要将包含路径指向其上方的几个目录?毕竟,你不是在做#include &lt;3.1.0_1/include/opencv2/text/ocr.hpp&gt;... 此外,这个问题与链接器无关,因为它在任何准备编译之前就失败了(它在预处理期间失败)。 如果我通过命令行导航,它的拼写为 cellar,但如果我通过 Eclipse 的 add directory: filesystem 导航,则为 Cellar,所以只需尝试路径变化以尝试使某些东西正常工作 【参考方案1】:

解决方案:

项目 > 属性 > C/C++ 常规 > 路径和符号 > GNU C++/usr/local/Cellar/opencv 更改为/usr/local/Cellar/opencv3

...> 库路径 删除所有路径并添加/usr/local/Cellar/opencv3

然后包括:#include &lt;3.1.0_4/include/opencv2/text/ocr.hpp&gt;

感谢 cmets 的帮助。

这篇文章也很有帮助:Eclipse C/C++ (CDT) import files into project - header file not found - include path

【讨论】:

如果您将“/3.1.0_4/include”添加到您在“GCC C++ Compiler > Includes”中设置的路径中,您可以避免该丑陋的包含路径。那么你应该能够拥有#include &lt;opencv2/text/ocr.hpp&gt;,这是我希望看到的。

以上是关于error C3861: “maxmin”: 找不到标识符的主要内容,如果未能解决你的问题,请参考以下文章

C++错误 ERROR C3861

error C3861: "max": 找不到标识符

在win7上用cygwin编译Geant4自带的example提示 error C3861: “lrint”: 找不到标识符

VS2015--win32工程配置的一些想法之GdiplusTypes.h(470) : error C3861: 'min': identifier not found

显示这个错误error C2601: 'maxmin' : local function definitions are illegal是怎么回事?

nodejs连接mysql报错Error: ER_BAD_DB_ERROR: Unknown database 'book',菜鸟找不出原因?