在Linux上编译SCIP Optimization Suite 3.2.0

时间:2015-07-04 23:06:38

标签: linux scip

在linux,CentOS 6.4(最终版)上编译scipsuite时,我收到这些错误:

help = $('<img src="/images/buttonup.png">')
help.css({ width: "10px" });
help.css({ width: "calc(10px + 10px)" });
if (help.width() == 20) var calcSupport = true; else var calcSupport = false;

gcc版本是4.4.7

我试过了:

-> compiling obj/O.linux.x86_64.gnu.opt/lib/objscip/objmessagehdlr.o
-> compiling obj/O.linux.x86_64.gnu.opt/lib/objscip/objnodesel.o
-> compiling obj/O.linux.x86_64.gnu.opt/lib/objscip/objpresol.o
-> compiling obj/O.linux.x86_64.gnu.opt/lib/objscip/objpricer.o
-> compiling obj/O.linux.x86_64.gnu.opt/lib/objscip/objprobdata.o
-> compiling obj/O.linux.x86_64.gnu.opt/lib/objscip/objprop.o
-> compiling obj/O.linux.x86_64.gnu.opt/lib/objscip/objreader.o
-> compiling obj/O.linux.x86_64.gnu.opt/lib/objscip/objrelax.o
-> compiling obj/O.linux.x86_64.gnu.opt/lib/objscip/objsepa.o
-> compiling obj/O.linux.x86_64.gnu.opt/lib/objscip/objvardata.o
-> generating library lib/libobjscip-3.2.0.linux.x86_64.gnu.opt.a
-> compiling obj/O.linux.x86_64.gnu.opt/lib/lpi/lpi_spx.o
In file included from lib/spxinc/basevectors.h:30,
                 from lib/spxinc/spxlpbase.h:34,
                 from lib/spxinc/spxlp.h:24,
                 from lib/spxinc/spxsolver.h:30,
                 from src/lpi/lpi_spx.cpp:76:
lib/spxinc/rational.h:133: error: only declarations of constructors can be ‘explicit’
lib/spxinc/rational.h:136: error: only declarations of constructors can be ‘explicit’
In file included from src/lpi/lpi_spx.cpp:76:
lib/spxinc/spxsolver.h: In member function ‘void     soplex::SPxSolver::setOutstream(soplex::SPxOut&)’:
lib/spxinc/spxsolver.h:383: error: ‘template<class R> class     soplex::SPxLPBase’ used without template parameters
make[1]: *** [obj/O.linux.x86_64.gnu.opt/lib/lpi/lpi_spx.o] Error 1

我已经安装了GMP,ZLIB和READLINE库,以及它们的开发库。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果你想用gcc 4.4.7编译SoPlex,你肯定需要设置LEGACY=true(在SCIP中你需要指定SPX_LEGACY=true)。如果您正在编译SCIP Optimization Suite中的代码(推荐),则选项LEGACY=true将相应地编译SCIP和SoPlex。

关于spxsolver.h中的其他错误:在第383行,请替换

SPxLPBase::spxout = &newOutstream;

SPxLP::spxout = &newOutstream;

显然,较新版本的gcc在没有指定模板说明符的情况下不会抱怨此用法(SPxLP实际上是SPxLPBase <Real>)。