coin-or / Clp

COIN-OR Linear Programming Solver
Other
396 stars 82 forks source link

Building CLP ver 1.17.6 with MSVS 2019 #192

Open hedwards7070 opened 3 years ago

hedwards7070 commented 3 years ago

Dear Sir/Madam

I have tried to build CLP version 1.17.6 using Visual Studio 2019, but failed as shown in the printout below. There are callls to updateTwoColumnsTranspose but there is not any implemented method.

Furthermore the variable wasMaximization should be a member CoinLpIO.

x 1>------ Rebuild All started: Project: libClp, Configuration: Release x64 ------ 2>------ Rebuild All started: Project: libCoinUtils, Configuration: Release x64 ------ 3>------ Skipped Rebuild All: Project: libOsiClp, Configuration: Release x64 ------ 3>Project not selected to build for this solution configuration 1>Clp_C_Interface.cpp 2>CoinAlloc.cpp 2>CoinBuild.cpp 1>ClpCholeskyBase.cpp 2>CoinDenseFactorization.cpp 1>ClpCholeskyDense.cpp 2>CoinDenseVector.cpp 1>ClpConstraint.cpp 2>CoinError.cpp 1>ClpConstraintLinear.cpp 2>CoinFactorization1.cpp 1>ClpConstraintQuadratic.cpp 2>CoinFactorization2.cpp 1>ClpDualRowDantzig.cpp 2>CoinFactorization3.cpp 1>ClpDualRowPivot.cpp 2>CoinFactorization4.cpp 1>ClpDualRowSteepest.cpp 2>CoinFileIO.cpp 2>CoinFinite.cpp 1>ClpDummyMatrix.cpp 2>CoinIndexedVector.cpp 1>ClpDynamicExampleMatrix.cpp 2>CoinLpIO.cpp 2>e:\D00\C++\Clp-1.17.6\CoinUtils\src\CoinLpIO.cpp(2268,30): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data 2>e:\D00\C++\Clp-1.17.6\CoinUtils\src\CoinLpIO.cpp(2320,32): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data 1>ClpDynamicMatrix.cpp 2>CoinMessage.cpp 2>CoinMessageHandler.cpp 1>ClpEventHandler.cpp 2>CoinModel.cpp 1>ClpFactorization.cpp 1>e:\D00\C++\Clp-1.17.6\Clp\src\ClpFactorization.cpp(3077,28): error C2039: 'updateTwoColumnsTranspose': is not a member of 'CoinFactorization' 1>e:\D00\C++\Clp-1.17.6\Clp\src\ClpSimplex.hpp(24): message : see declaration of 'CoinFactorization' 1>ClpGubDynamicMatrix.cpp 2>CoinModelUseful.cpp 2>CoinModelUseful2.cpp 1>ClpGubMatrix.cpp 2>e:\D00\C++\Clp-1.17.6\CoinUtils\src\CoinModelUseful2.cpp(706,5): warning C4065: switch statement contains 'default' but no 'case' labels 2>e:\D00\C++\Clp-1.17.6\CoinUtils\src\CoinModelUseful2.cpp(1362,11): warning C4102: 'yyerrorlab': unreferenced label 2>CoinMpsIO.cpp 1>ClpHelperFunctions.cpp 2>CoinOslFactorization.cpp 1>ClpInterior.cpp 2>Generating Code... 1>ClpLinearObjective.cpp 1>ClpLsqr.cpp 1>Generating Code... 2>Compiling... 2>CoinOslFactorization2.cpp 2>CoinOslFactorization3.cpp 1>Compiling... 1>ClpMatrixBase.cpp 2>CoinPackedMatrix.cpp 1>ClpMessage.cpp 2>CoinPackedVector.cpp 2>e:\D00\C++\Clp-1.17.6\CoinUtils\src\CoinPackedVector.cpp(98,23): warning C4101: 'e': unreferenced local variable 1>ClpModel.cpp 2>e:\D00\C++\Clp-1.17.6\CoinUtils\src\CoinPackedVector.cpp(494,24): warning C4101: 'e': unreferenced local variable 2>e:\D00\C++\Clp-1.17.6\CoinUtils\src\CoinPackedVector.cpp(520,22): warning C4101: 'e': unreferenced local variable 2>CoinPackedVectorBase.cpp 1>e:\D00\C++\Clp-1.17.6\Clp\src\ClpModel.cpp(1341,53): warning C4018: '<': signed/unsigned mismatch 1>e:\D00\C++\Clp-1.17.6\Clp\src\ClpModel.cpp(1352,20): warning C4018: '<': signed/unsigned mismatch 1>e:\D00\C++\Clp-1.17.6\Clp\src\ClpModel.cpp(3560,27): warning C4018: '<': signed/unsigned mismatch 1>e:\D00\C++\Clp-1.17.6\Clp\src\ClpModel.cpp(3587,33): warning C4018: '<': signed/unsigned mismatch 1>e:\D00\C++\Clp-1.17.6\Clp\src\ClpModel.cpp(3834,25): warning C4018: '<': signed/unsigned mismatch 1>e:\D00\C++\Clp-1.17.6\Clp\src\ClpModel.cpp(3855,17): warning C4018: '<': signed/unsigned mismatch 1>e:\D00\C++\Clp-1.17.6\Clp\src\ClpModel.cpp(3873,31): warning C4018: '<': signed/unsigned mismatch 1>e:\D00\C++\Clp-1.17.6\Clp\src\ClpModel.cpp(3894,20): warning C4018: '<': signed/unsigned mismatch 1>ClpNetworkBasis.cpp 2>CoinParam.cpp 2>CoinParamUtils.cpp 1>ClpNetworkMatrix.cpp 2>CoinPostsolveMatrix.cpp 1>ClpNode.cpp 2>CoinPrePostsolveMatrix.cpp 1>ClpNonLinearCost.cpp 2>CoinPresolveDoubleton.cpp 1>ClpObjective.cpp 2>CoinPresolveDual.cpp 1>ClpPackedMatrix.cpp 2>e:\D00\C++\Clp-1.17.6\CoinUtils\src\CoinPresolveDual.cpp(1519,11): warning C4804: '>': unsafe use of type 'bool' in operation 2>CoinPresolveDupcol.cpp 1>e:\D00\C++\Clp-1.17.6\Clp\src\ClpPackedMatrix.cpp(6921,20): warning C4244: '=': conversion from 'int64' to 'CoinBigIndex', possible loss of data 1>ClpPdco.cpp 2>CoinPresolveEmpty.cpp 1>ClpPdcoBase.cpp 2>CoinPresolveFixed.cpp 1>ClpPlusMinusOneMatrix.cpp 2>CoinPresolveForcing.cpp 1>ClpPredictorCorrector.cpp 2>CoinPresolveHelperFunctions.cpp 2>CoinPresolveImpliedFree.cpp 1>ClpPresolve.cpp 2>CoinPresolveIsolated.cpp 1>ClpPrimalColumnDantzig.cpp 2>CoinPresolveMatrix.cpp 1>ClpPrimalColumnPivot.cpp 2>CoinPresolvePsdebug.cpp 1>ClpPrimalColumnSteepest.cpp 2>Generating Code... 1>ClpQuadraticObjective.cpp 1>ClpSimplex.cpp 1>e:\D00\C++\Clp-1.17.6\Clp\src\ClpSimplex.cpp(7657,9): error C2039: 'wasMaximization': is not a member of 'CoinLpIO' 1>e:\D00\C++\Clp-1.17.6\CoinUtils\src\CoinLpIO.hpp(104): message : see declaration of 'CoinLpIO' 1>ClpSimplexDual.cpp 1>Generating Code... 2>Compiling... 2>CoinPresolveSingleton.cpp 2>CoinPresolveSubst.cpp 2>CoinPresolveTighten.cpp 2>CoinPresolveTripleton.cpp 2>CoinPresolveUseless.cpp 2>CoinPresolveZeros.cpp 2>CoinRational.cpp 2>e:\D00\C++\Clp-1.17.6\CoinUtils\src\CoinRational.cpp(60,23): warning C4244: 'argument': conversion from 'double' to 'long', possible loss of data 2>CoinSearchTree.cpp 2>CoinShallowPackedVector.cpp 2>e:\D00\C++\Clp-1.17.6\CoinUtils\src\CoinShallowPackedVector.cpp(39,25): warning C4101: 'e': unreferenced local variable 2>e:\D00\C++\Clp-1.17.6\CoinUtils\src\CoinShallowPackedVector.cpp(61,25): warning C4101: 'e': unreferenced local variable 2>e:\D00\C++\Clp-1.17.6\CoinUtils\src\CoinShallowPackedVector.cpp(83,22): warning C4101: 'e': unreferenced local variable 2>e:\D00\C++\Clp-1.17.6\CoinUtils\src\CoinShallowPackedVector.cpp(103,22): warning C4101: 'e': unreferenced local variable 2>e:\D00\C++\Clp-1.17.6\CoinUtils\src\CoinShallowPackedVector.cpp(124,22): warning C4101: 'e': unreferenced local variable 2>e:\D00\C++\Clp-1.17.6\CoinUtils\src\CoinShallowPackedVector.cpp(143,22): warning C4101: 'e': unreferenced local variable 2>e:\D00\C++\Clp-1.17.6\CoinUtils\src\CoinShallowPackedVector.cpp(163,22): warning C4101: 'e': unreferenced local variable 2>CoinSimpFactorization.cpp 1>Compiling... 1>ClpSimplexNonlinear.cpp 2>CoinSnapshot.cpp 1>ClpSimplexOther.cpp 2>CoinStructuredModel.cpp 1>e:\D00\C++\Clp-1.17.6\Clp\src\ClpSimplexOther.cpp(8370,14): warning C4244: 'initializing': conversion from 'int64' to 'long', possible loss of data 1>ClpSimplexPrimal.cpp 2>CoinWarmStartBasis.cpp 1>ClpSolve.cpp 2>CoinWarmStartDual.cpp 2>CoinWarmStartPrimalDual.cpp 1>e:\D00\C++\Clp-1.17.6\Clp\src\ClpSolve.cpp(2933,36): warning C4244: '=': conversion from 'double' to 'int', possible loss of data 1>e:\D00\C++\Clp-1.17.6\Clp\src\ClpSolve.cpp(2935,36): warning C4244: '=': conversion from 'double' to 'int', possible loss of data 2>CoinWarmStartVector.cpp 2>Generating Code... 1>Idiot.cpp 1>IdiSolve.cpp 1>ClpPESimplex.cpp 1>e:\D00\C++\Clp-1.17.6\Clp\src\ClpPESimplex.cpp(556,34): warning C4244: '=': conversion from 'double' to 'int', possible loss of data 1>e:\D00\C++\Clp-1.17.6\Clp\src\ClpPESimplex.cpp(567,32): warning C4244: '=': conversion from 'double' to 'int', possible loss of data 1>e:\D00\C++\Clp-1.17.6\Clp\src\ClpPESimplex.cpp(577,31): warning C4244: '=': conversion from 'double' to 'int', possible loss of data 1>e:\D00\C++\Clp-1.17.6\Clp\src\ClpPESimplex.cpp(587,31): warning C4244: '=': conversion from 'double' to 'int', possible loss of data 1>ClpPEPrimalColumnDantzig.cpp 1>ClpPEPrimalColumnSteepest.cpp 1>ClpPEDualRowDantzig.cpp 1>ClpPEDualRowSteepest.cpp 2>libCoinUtils.vcxproj -> E:\D00\C++\Clp-1.17.6\Clp\MSVisualStudio\v10\x64-v142-Release\libCoinUtils.lib 2>Done building project "libCoinUtils.vcxproj". 1>Generating Code... 1>Done building project "libClp.vcxproj" -- FAILED. 4>------ Skipped Rebuild All: Project: ClpExamplesMinimum, Configuration: Release x64 ------ 4>Project not selected to build for this solution configuration 5>------ Skipped Rebuild All: Project: ClpExamplesTestBarrier, Configuration: Release x64 ------ 5>Project not selected to build for this solution configuration 6>------ Skipped Rebuild All: Project: ClpExamplesTestQP, Configuration: Release x64 ------ 6>Project not selected to build for this solution configuration 7>------ Rebuild All started: Project: clp, Configuration: Release x64 ------ 8>------ Skipped Rebuild All: Project: OsiClpUnitTest, Configuration: Release x64 ------ 8>Project not selected to build for this solution configuration 7>CbcOrClpParam.cpp 7>ClpMain.cpp 7>ClpSolver.cpp 7>MyEventHandler.cpp 7>MyMessageHandler.cpp 7>unitTest.cpp 7>Generating Code... 7>LINK : fatal error LNK1181: cannot open input file 'libClp.lib' 7>Done building project "clp.vcxproj" -- FAILED. ========== Rebuild All: 1 succeeded, 2 failed, 5 skipped ==========

Is this something that you can take care of, or is there perhaps a mistake made by me somewhere.

Sincerely yours,

Henrik Edwards Henrik.Edwards@sweco.se
+46 70 552 94 07

tkralphs commented 3 years ago

I guess you are somehow using the wrong version of CoinUtils, which is releases/2.11.4. In that version, the missing method is defined [here](https://github.com/coin-or/CoinUtils/blob/f709081c9b57cc2dd32579d804b30689ca789982/CoinUtils/src/CoinFactorization.hpp#L626] in CoinUtils releases/2.11.4 and the build went through with Visual Studio 2017 here.