首页 > 解决方案 > 在函数 'int main(int, char**) 中,未声明 'MIN'

问题描述

我正在使用 ubuntu 18.04、HepMC 2.05.01、root 5.34.38、lhapdf 5.9.1 处理分析代码。当我编译我的代码时,我得到了错误;

g++ -g -I/home/danisih/compiler/analysis/pythia8153/include -I/home/danisih/compiler/analysis/TAUOLA.1.1.6c-LHC/include Analysistau.cc -o Analysistau.exe -L/home/danisih/compiler/analysis/TAUOLA.1.1.6c-LHC/lib  -L/home/danisih/compiler/analysis/pythia8153/lib/archive -L/home/danisih/compiler/analysis/HepMC-2.05.01/lib -L/home/danisih/compiler/analysis/lhapdf-5.9.1/lib `root-config --cflags --glibs` `fastjet-config --cxxflags --plugins` `fastjet-config --libs --plugins` -lpythia8 -lLHAPDF -lhepmcinterface -lHepMC -lTauolaCxxInterface -lTauolaFortran

Analysistau.cc: In function ‘int main(int, char**)’:

Analysistau.cc:221:16: error: ‘MIN’ was not declared in this scope

double max=MIN;
                ^

makefile:24: recipe for target 'Analysistau' failed

make: *** [Analysistau] Error 1

如何在 int main() 中声明 'MIN' ???

标签: c++

解决方案


由于 MIN 的大小写都是大写的,而且错误看起来很容易理解,我认为宏给你带来了麻烦。

只需在 main 之前添加这些行:

double min(double a, double b){ return a<b ? a : b; }
double max(double a, double b){ return a>b ? a : b; }

如果可以的话,最好避免使用宏。


推荐阅读