在 Visual Studio 中添加库后找不到最小标识符

问题描述 投票:0回答:1

我一直在 Visual Studio 2022 中实现一个使用外部 C++ 库的项目。

我已经在

project properties > C/C++ > General > Additional Include Directories > ...armadillo library location.

中添加了犰狳库

我还有其他附加库,例如 eigen 库。

我已经设置了

C/C++ > Precompiled Headers > Precompiled Heaader : Not using Precompiled Headers
。 然后我也尝试实施为
:Use/Yu or Create/Yc

这是我的代码:

#include "pch.h" // use stdafx.h in Visual Studio 2017 and earlier
#include <utility>
#include <iostream> 
#include <limits.h>
#include "TxLibrary.h"

// Added C library for the implementation
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

// Added C++ libarary for the implementation
#include <vector>               
#include <algorithm>
#include <iomanip>                  

#include <armadillo>
#include <fstream>                  
#include <string.h>                 

void foo(int x, int y){
  int temp = min(x,y);
}

int main(){
  foo(2,3);
}

构建期间出现完整错误,包括犰狳库:

Severity   Code    Description Project File    Line    Suppression State Error C3861   'min': identifier not found.

删除后警告

#include <armadillo>
1>WARNING: undefined conflicting 'min' and/or 'max' macros.

这是因为犰狳库包含 min 函数吗? 或者我是否为 Visual Studio 选择了错误的设置来包含目录?

c++ visual-studio libraries
1个回答
0
投票

使用 std::min 而不是 min。避免

using namespace std

由于宏 NOMINMAX 有效,您的其他头文件可能会间接包含

minwindef.h

并添加

(  )
(std::min)(x,y)
应该适合您,无需添加预处理器:NOMINMAX

© www.soinside.com 2019 - 2024. All rights reserved.