ibex-team / ibex-lib

IBEX is a C++ library for constraint processing over real numbers.
http://ibex-team.github.io/ibex-lib/
GNU Lesser General Public License v3.0
67 stars 51 forks source link

Compilation errors (windows) #432

Closed agutierreza closed 4 years ago

agutierreza commented 4 years ago

Hi, I'm trying to install ibex-2.8.6 on Windows 10 following the instructions from http://www.ibex-lib.org/doc/install.html.

When finally doing ./waf install it stops on different compilation errors (when trying repeatedly). These are a few:

[121/171] Compiling src\strategy\ibex_BxpLinearRelaxArgMin.cpp ..\src\system\ibex_System.cpp: In member function 'std::vector<std::basic_string > ibex::System::var_names() const': ..\src\system\ibex_System.cpp:343:57: error: 'to_string' was not declared in this scope var_names.push_back(string(x.name)+'('+to_string(i+1)+')'); ^ ..\src\system\ibex_System.cpp:348:58: error: 'to_string' was not declared in this scope var_names.push_back(string(x.name)+'('+to_string(i+1)+','+to_string(j+1)+')'); ^

Waf: Leaving directory `C:\MinGW\msys\1.0\home\Alejandro\Ibex\ibex-2.8.6__build__' Build failed -> task in 'ibex' failed with exit status 1 (run with -v to display more information)

####################################################################################### #######################################################################################

[144/171] Compiling src\symbolic\ibex_ExprCopy.cpp In file included from :718:0: c:\mingw\include\unistd.h:78:11: error: '_cdecl' does not name a type _EXTERN_C _cdecl MINGW_NOTHROW ^ In file included from :718:0: c:\mingw\include\unistd.h:104:1: error: '_cdecl' does not name a type _cdecl __MINGW_NOTHROW ^ c:\mingw\include\unistd.h: In function 'int nanosleep(const timespec, timespec)': c:\mingw\include\unistd.h:114:51: error: 'mingw_sleep' was not declared in this scope ? (unsigned)(-1) : (unsigned)(period->tv_nsec)); ^ c:\mingw\include\unistd.h: At global scope: c:\mingw\include\unistd.h:125:28: error: expected initializer before 'usleep' int _cdecl MINGW_NOTHROW usleep( useconds_t )MINGW_ATTRIB_DEPRECATED; ^ c:\mingw\include\unistd.h: In function 'int usleep(useconds_t)': c:\mingw\include\unistd.h:129:73: error: 'mingw_sleep' was not declared in this scope int usleep( useconds_t period ){ return mingw_sleep( 0, 1000 * period ); } ^ c:\mingw\include\unistd.h: At global scope: c:\mingw\include\unistd.h:138:33: error: expected initializer before 'sleep' unsigned _cdecl MINGW_NOTHROW sleep( unsigned ); ^ c:\mingw\include\unistd.h: In function 'unsigned int sleep(unsigned int)': c:\mingw\include\unistd.h:142:68: error: '__mingw_sleep' was not declared in this scope unsigned sleep( unsigned period ){ return mingw_sleep( period, 0 ); } ^ c:\mingw\include\unistd.h: At global scope: c:\mingw\include\unistd.h:153:12: error: expected initializer before 'ftruncate' int _cdecl ftruncate( int, off_t ); ^

..\src\system\ibex_System.cpp: In member function 'std::vector<std::basic_string > ibex::System::var_names() const': ..\src\system\ibex_System.cpp:343:57: error: 'to_string' was not declared in this scope var_names.push_back(string(x.name)+'('+to_string(i+1)+')'); ^ ..\src\system\ibex_System.cpp:348:58: error: 'to_string' was not declared in this scope var_names.push_back(string(x.name)+'('+to_string(i+1)+','+to_string(j+1)+')'); ^

Waf: Leaving directory `C:\MinGW\msys\1.0\home\Alejandro\Ibex\ibex-2.8.6__build__' Broken revdeps detected on set([ {task 54954288: cxxstlib ibex_IntervalLibWrapper.cpp.3.o,ibex_LPLibWrapper.cpp.3.o,ibex_Dim.cpp.3.o,ibex_DoubleIndex.cpp.3.o,ibex_InnerArith.cpp.3.o,ibex_Interval.cpp.3.o,ibex_IntervalMatrix.cpp.3.o,ibex_IntervalVector.cpp.3.o,ibex_Matrix.cpp.3.o,ibex_SetMembership.cpp.3.o,ibex_Vector.cpp.3.o,ibexsolve.cpp.3.o,ibex_Bsc.cpp.3.o,ibex_LargestFirst.cpp.3.o,ibex_RoundRobin.cpp.3.o,ibex_SmearFunction.cpp.3.o,ibex_QInter.cpp.3.o,ibex_Ctc.cpp.3.o,ibex_Ctc3BCid.cpp.3.o,ibex_CtcAcid.cpp.3.o,ibex_CtcCompo.cpp.3.o,ibex_CtcEmpty.cpp.3.o,ibex_CtcExist.cpp.3.o,ibex_CtcFixPoint.cpp.3.o,ibex_CtcForAll.cpp.3.o,ibex_CtcFwdBwd.cpp.3.o,ibex_CtcHC4.cpp.3.o,ibex_CtcIdentity.cpp.3.o,ibex_CtcInteger.cpp.3.o,ibex_CtcInverse.cpp.3.o,ibex_CtcKuhnTucker.cpp.3.o,ibex_CtcKuhnTuckerLP.cpp.3.o,ibex_CtcLinearRelax.cpp.3.o,ibex_CtcNewton.cpp.3.o,ibex_CtcNotIn.cpp.3.o,ibex_CtcPolytopeHull.cpp.3.o,ibex_CtcPropag.cpp.3.o,ibex_CtcQInter.cpp.3.o,ibex_CtcQuantif.cpp.3.o,ibex_CtcUnion.cpp.3.o,ibex_Cov.cpp.3.o,ibex_CovIBUList.cpp.3.o,ibex_CovIUList.cpp.3.o,ibex_CovList.cpp.3.o,ibex_CovManifold.cpp.3.o,ibex_CovSolverData.cpp.3.o,ibex_CompiledFunction.cpp.3.o,ibex_Eval.cpp.3.o,ibex_Fnc.cpp.3.o,ibex_FncProj.cpp.3.o,ibex_Function.cpp.3.o,ibex_FunctionBuild.cpp.3.o,ibex_Gradient.cpp.3.o,ibex_HC4Revise.cpp.3.o,ibex_InHC4Revise.cpp.3.o,ibex_NumConstraint.cpp.3.o,ibex_VarSet.cpp.3.o,ibex_Certificate.cpp.3.o,ibex_Kernel.cpp.3.o,ibex_LPSolver.cpp.3.o,ibex_Linear.cpp.3.o,ibex_Linearizer.cpp.3.o,ibex_LinearizerCompo.cpp.3.o,ibex_LinearizerDuality.cpp.3.o,ibex_LinearizerFixed.cpp.3.o,ibex_LinearizerXTaylor.cpp.3.o,ibex_Newton.cpp.3.o,ibex_atanhc.cpp.3.o,ibex_atanhccc.cpp.3.o,ibex_crossproduct.cpp.3.o,ibex_sinc.cpp.3.o,ibex_trace.cpp.3.o,ibex_P_CtrGenerator.cpp.3.o,ibex_P_Expr.cpp.3.o,ibex_P_ExprGenerator.cpp.3.o,ibex_P_ExprPrinter.cpp.3.o,ibex_P_NumConstraint.cpp.3.o,ibex_P_Scope.cpp.3.o,ibex_P_Source.cpp.3.o,ibex_P_Struct.cpp.3.o,ibex_P_SysGenerator.cpp.3.o,ibex_SyntaxError.cpp.3.o,ibex_PdcAnd.cpp.3.o,ibex_PdcCleared.cpp.3.o,ibex_PdcDiameterLT.cpp.3.o,ibex_PdcFirstOrder.cpp.3.o,ibex_PdcFwdBwd.cpp.3.o,ibex_PdcHansenFeasibility.cpp.3.o,ibex_PdcImageSubset.cpp.3.o,ibex_PdcNo.cpp.3.o,ibex_PdcNot.cpp.3.o,ibex_PdcOr.cpp.3.o,ibex_PdcYes.cpp.3.o,ibex_Sep.cpp.3.o,ibex_SepBoundaryCtc.cpp.3.o,ibex_SepCtcPair.cpp.3.o,ibex_SepFwdBwd.cpp.3.o,ibex_SepInter.cpp.3.o,ibex_SepInverse.cpp.3.o,ibex_SepNot.cpp.3.o,ibex_SepQInter.cpp.3.o,ibex_SepUnion.cpp.3.o,ibex_Set.cpp.3.o,ibex_SetBisect.cpp.3.o,ibex_SetConnectedComponents.cpp.3.o,ibex_SetInterval.cpp.3.o,ibex_SetLeaf.cpp.3.o,ibex_SetNode.cpp.3.o,ibex_SetValueNode.cpp.3.o,ibex_DefaultSolver.cpp.3.o,ibex_Solver.cpp.3.o,ibex_BoxProperties.cpp.3.o,ibex_BxpActiveCtr.cpp.3.o,ibex_BxpActiveCtrs.cpp.3.o,ibex_BxpLinearRelaxArgMin.cpp.3.o,ibex_BxpSystemCache.cpp.3.o,ibex_Cell.cpp.3.o,ibex_CellBuffer.cpp.3.o,ibex_CellList.cpp.3.o,ibex_CellStack.cpp.3.o,ibex_Paver.cpp.3.o,ibex_SetImage.cpp.3.o,ibex_CmpOp.cpp.3.o,ibex_Expr.cpp.3.o,ibex_Expr2DAG.cpp.3.o,ibex_Expr2Minibex.cpp.3.o,ibex_ExprCmp.cpp.3.o,ibex_ExprCopy.cpp.3.o,ibex_ExprDiff.cpp.3.o,ibex_ExprLinearity.cpp.3.o,ibex_ExprOperators.cpp.3.o,ibex_ExprPrinter.cpp.3.o,ibex_ExprSimplify.cpp.3.o,ibex_ExprSize.cpp.3.o,ibex_ExprSubNodes.cpp.3.o,ibex_ExtendedSystem.cpp.3.o,ibex_FncActiveCtrs.cpp.3.o,ibex_FncKuhnTucker.cpp.3.o,ibex_KuhnTuckerSystem.cpp.3.o,ibex_NormalizedSystem.cpp.3.o,ibex_System.cpp.3.o,ibex_SystemFactory.cpp.3.o,ibex_SystemMerge.cpp.3.o,ibex_Agenda.cpp.3.o,ibex_BitSet.cpp.3.o,ibex_DirectedHyperGraph.cpp.3.o,ibex_Exception.cpp.3.o,ibex_HyperGraph.cpp.3.o,ibex_Id.cpp.3.o,ibex_Memory.cpp.3.o,ibex_Random.cpp.3.o,ibex_String.cpp.3.o,ibex_Timer.cpp.3.o,lexer.lex.cc.3.o,parser.tab.cc.3.o -> libibex.a}, {task 54954352: inst libibex.a -> libibex.a}, {task 55012784: cxxprogram ibexsolve.cpp.5.o -> ibexsolve.exe}, {task 55012848: inst ibexsolve.exe -> ibexsolve.exe}])

####################################################################################### #######################################################################################

[124/171] Compiling src\contractor\ibex_CtcEmpty.cpp ..\src\system\ibex_System.cpp: In member function 'std::vector<std::basic_string > ibex::System::var_names() const': ..\src\system\ibex_System.cpp:343:57: error: 'to_string' was not declared in this scope var_names.push_back(string(x.name)+'('+to_string(i+1)+')'); ^ ..\src\system\ibex_System.cpp:348:58: error: 'to_string' was not declared in this scope var_names.push_back(string(x.name)+'('+to_string(i+1)+','+to_string(j+1)+')'); ^

Waf: Leaving directory `C:\MinGW\msys\1.0\home\Alejandro\Ibex\ibex-2.8.6__build__' Build failed -> task in 'ibex' failed with exit status 1 (run with -v to display more information)

####################################################################################### #######################################################################################

[142/171] Compiling src\function\ibex_Gradient.cpp In file included from :718:0: c:\mingw\include\unistd.h:78:11: error: '_cdecl' does not name a type _EXTERN_C _cdecl MINGW_NOTHROW ^ In file included from :718:0: c:\mingw\include\unistd.h:104:1: error: '_cdecl' does not name a type _cdecl __MINGW_NOTHROW ^ c:\mingw\include\unistd.h: In function 'int nanosleep(const timespec, timespec)': c:\mingw\include\unistd.h:114:51: error: 'mingw_sleep' was not declared in this scope ? (unsigned)(-1) : (unsigned)(period->tv_nsec)); ^ c:\mingw\include\unistd.h: At global scope: c:\mingw\include\unistd.h:125:28: error: expected initializer before 'usleep' int _cdecl MINGW_NOTHROW usleep( useconds_t )MINGW_ATTRIB_DEPRECATED; ^ c:\mingw\include\unistd.h: In function 'int usleep(useconds_t)': c:\mingw\include\unistd.h:129:73: error: 'mingw_sleep' was not declared in this scope int usleep( useconds_t period ){ return mingw_sleep( 0, 1000 * period ); } ^ c:\mingw\include\unistd.h: At global scope: c:\mingw\include\unistd.h:138:33: error: expected initializer before 'sleep' unsigned _cdecl MINGW_NOTHROW sleep( unsigned ); ^ c:\mingw\include\unistd.h: In function 'unsigned int sleep(unsigned int)': c:\mingw\include\unistd.h:142:68: error: '__mingw_sleep' was not declared in this scope unsigned sleep( unsigned period ){ return mingw_sleep( period, 0 ); } ^ c:\mingw\include\unistd.h: At global scope: c:\mingw\include\unistd.h:153:12: error: expected initializer before 'ftruncate' int _cdecl ftruncate( int, off_t ); ^

Waf: Leaving directory `C:\MinGW\msys\1.0\home\Alejandro\Ibex\ibex-2.8.6__build__' Broken revdeps detected on set([ {task 54095344: inst ibexsolve.exe -> ibexsolve.exe}, {task 54095280: cxxprogram ibexsolve.cpp.5.o -> ibexsolve.exe}, {task 54040880: cxxstlib ibex_IntervalLibWrapper.cpp.3.o,ibex_LPLibWrapper.cpp.3.o,ibex_Dim.cpp.3.o,ibex_DoubleIndex.cpp.3.o,ibex_InnerArith.cpp.3.o,ibex_Interval.cpp.3.o,ibex_IntervalMatrix.cpp.3.o,ibex_IntervalVector.cpp.3.o,ibex_Matrix.cpp.3.o,ibex_SetMembership.cpp.3.o,ibex_Vector.cpp.3.o,ibexsolve.cpp.3.o,ibex_Bsc.cpp.3.o,ibex_LargestFirst.cpp.3.o,ibex_RoundRobin.cpp.3.o,ibex_SmearFunction.cpp.3.o,ibex_QInter.cpp.3.o,ibex_Ctc.cpp.3.o,ibex_Ctc3BCid.cpp.3.o,ibex_CtcAcid.cpp.3.o,ibex_CtcCompo.cpp.3.o,ibex_CtcEmpty.cpp.3.o,ibex_CtcExist.cpp.3.o,ibex_CtcFixPoint.cpp.3.o,ibex_CtcForAll.cpp.3.o,ibex_CtcFwdBwd.cpp.3.o,ibex_CtcHC4.cpp.3.o,ibex_CtcIdentity.cpp.3.o,ibex_CtcInteger.cpp.3.o,ibex_CtcInverse.cpp.3.o,ibex_CtcKuhnTucker.cpp.3.o,ibex_CtcKuhnTuckerLP.cpp.3.o,ibex_CtcLinearRelax.cpp.3.o,ibex_CtcNewton.cpp.3.o,ibex_CtcNotIn.cpp.3.o,ibex_CtcPolytopeHull.cpp.3.o,ibex_CtcPropag.cpp.3.o,ibex_CtcQInter.cpp.3.o,ibex_CtcQuantif.cpp.3.o,ibex_CtcUnion.cpp.3.o,ibex_Cov.cpp.3.o,ibex_CovIBUList.cpp.3.o,ibex_CovIUList.cpp.3.o,ibex_CovList.cpp.3.o,ibex_CovManifold.cpp.3.o,ibex_CovSolverData.cpp.3.o,ibex_CompiledFunction.cpp.3.o,ibex_Eval.cpp.3.o,ibex_Fnc.cpp.3.o,ibex_FncProj.cpp.3.o,ibex_Function.cpp.3.o,ibex_FunctionBuild.cpp.3.o,ibex_Gradient.cpp.3.o,ibex_HC4Revise.cpp.3.o,ibex_InHC4Revise.cpp.3.o,ibex_NumConstraint.cpp.3.o,ibex_VarSet.cpp.3.o,ibex_Certificate.cpp.3.o,ibex_Kernel.cpp.3.o,ibex_LPSolver.cpp.3.o,ibex_Linear.cpp.3.o,ibex_Linearizer.cpp.3.o,ibex_LinearizerCompo.cpp.3.o,ibex_LinearizerDuality.cpp.3.o,ibex_LinearizerFixed.cpp.3.o,ibex_LinearizerXTaylor.cpp.3.o,ibex_Newton.cpp.3.o,ibex_atanhc.cpp.3.o,ibex_atanhccc.cpp.3.o,ibex_crossproduct.cpp.3.o,ibex_sinc.cpp.3.o,ibex_trace.cpp.3.o,ibex_P_CtrGenerator.cpp.3.o,ibex_P_Expr.cpp.3.o,ibex_P_ExprGenerator.cpp.3.o,ibex_P_ExprPrinter.cpp.3.o,ibex_P_NumConstraint.cpp.3.o,ibex_P_Scope.cpp.3.o,ibex_P_Source.cpp.3.o,ibex_P_Struct.cpp.3.o,ibex_P_SysGenerator.cpp.3.o,ibex_SyntaxError.cpp.3.o,ibex_PdcAnd.cpp.3.o,ibex_PdcCleared.cpp.3.o,ibex_PdcDiameterLT.cpp.3.o,ibex_PdcFirstOrder.cpp.3.o,ibex_PdcFwdBwd.cpp.3.o,ibex_PdcHansenFeasibility.cpp.3.o,ibex_PdcImageSubset.cpp.3.o,ibex_PdcNo.cpp.3.o,ibex_PdcNot.cpp.3.o,ibex_PdcOr.cpp.3.o,ibex_PdcYes.cpp.3.o,ibex_Sep.cpp.3.o,ibex_SepBoundaryCtc.cpp.3.o,ibex_SepCtcPair.cpp.3.o,ibex_SepFwdBwd.cpp.3.o,ibex_SepInter.cpp.3.o,ibex_SepInverse.cpp.3.o,ibex_SepNot.cpp.3.o,ibex_SepQInter.cpp.3.o,ibex_SepUnion.cpp.3.o,ibex_Set.cpp.3.o,ibex_SetBisect.cpp.3.o,ibex_SetConnectedComponents.cpp.3.o,ibex_SetInterval.cpp.3.o,ibex_SetLeaf.cpp.3.o,ibex_SetNode.cpp.3.o,ibex_SetValueNode.cpp.3.o,ibex_DefaultSolver.cpp.3.o,ibex_Solver.cpp.3.o,ibex_BoxProperties.cpp.3.o,ibex_BxpActiveCtr.cpp.3.o,ibex_BxpActiveCtrs.cpp.3.o,ibex_BxpLinearRelaxArgMin.cpp.3.o,ibex_BxpSystemCache.cpp.3.o,ibex_Cell.cpp.3.o,ibex_CellBuffer.cpp.3.o,ibex_CellList.cpp.3.o,ibex_CellStack.cpp.3.o,ibex_Paver.cpp.3.o,ibex_SetImage.cpp.3.o,ibex_CmpOp.cpp.3.o,ibex_Expr.cpp.3.o,ibex_Expr2DAG.cpp.3.o,ibex_Expr2Minibex.cpp.3.o,ibex_ExprCmp.cpp.3.o,ibex_ExprCopy.cpp.3.o,ibex_ExprDiff.cpp.3.o,ibex_ExprLinearity.cpp.3.o,ibex_ExprOperators.cpp.3.o,ibex_ExprPrinter.cpp.3.o,ibex_ExprSimplify.cpp.3.o,ibex_ExprSize.cpp.3.o,ibex_ExprSubNodes.cpp.3.o,ibex_ExtendedSystem.cpp.3.o,ibex_FncActiveCtrs.cpp.3.o,ibex_FncKuhnTucker.cpp.3.o,ibex_KuhnTuckerSystem.cpp.3.o,ibex_NormalizedSystem.cpp.3.o,ibex_System.cpp.3.o,ibex_SystemFactory.cpp.3.o,ibex_SystemMerge.cpp.3.o,ibex_Agenda.cpp.3.o,ibex_BitSet.cpp.3.o,ibex_DirectedHyperGraph.cpp.3.o,ibex_Exception.cpp.3.o,ibex_HyperGraph.cpp.3.o,ibex_Id.cpp.3.o,ibex_Memory.cpp.3.o,ibex_Random.cpp.3.o,ibex_String.cpp.3.o,ibex_Timer.cpp.3.o,lexer.lex.cc.3.o,parser.tab.cc.3.o -> libibex.a}, {task 54040944: inst libibex.a -> libibex.a}])

gchabert commented 4 years ago

Did you install MinGW or MinGW64?

raphaelchenouard commented 4 years ago

Hi, Depending on your usage scenario, using WSL can be more interesting: https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux On my side, I was able to install ibex using the linux method in a debian (and installing a few dependencies: build-essential, flex, bison...) under WSL following some basic tutorials. The main issues come from linking ibex to some windows code or libraries. So if you want to include ibex in some code sources you develop under the windows environment, it may not fit your needs. However, you can develop anything you want in the linux way using this approach even if you use a windows editor (I have not tried it): https://code.visualstudio.com/docs/remote/wsl

gchabert commented 4 years ago

No answer, presumably solved.