[Cbc] Compilation problems with COIN_BIG_INDEX=2

ycollette.nospam at free.fr ycollette.nospam at free.fr
Fri Oct 20 08:17:42 EDT 2017


I compile Cbc with COIN_BIG_INDEX=2.
I have some compilation errors when compiling Osi.

An error with OsiClpSolverInterface:

/home/artelys/repositories/coin/Cbc/Cbc/examples/simpleBAB.cpp: Dans la fonction « int main(int, const char**) »:
/home/artelys/repositories/coin/Cbc/Cbc/examples/simpleBAB.cpp:36:80: error: pas de fonction concordante pour l'appel à « OsiClpSolverInterface::loadProblem(int, int, int [3], int [2], double [2], double [2], double [2], double [2], double [1], double [1]) »
   model.loadProblem(2, 1, start, index, values, collb, colub, obj, rowlb, rowub);
                                                                                ^
In file included from /home/artelys/repositories/coin/Cbc/Cbc/examples/simpleBAB.cpp:11:0:
/home/artelys/repositories/coin/Cbc/Clp/src/OsiClp/OsiClpSolverInterface.hpp:868:16: note: candidate: virtual void OsiClpSolverInterface::loadProblem(const CoinPackedMatrix&, const double*, const double*, const double*, const double*, const double*)
   virtual void loadProblem(const CoinPackedMatrix& matrix,
                ^~~~~~~~~~~
/home/artelys/repositories/coin/Cbc/Clp/src/OsiClp/OsiClpSolverInterface.hpp:868:16: note:   le candidat attend 6 arguments, 10 fourni(s)
/home/artelys/repositories/coin/Cbc/Clp/src/OsiClp/OsiClpSolverInterface.hpp:896:16: note: candidate: virtual void OsiClpSolverInterface::loadProblem(const CoinPackedMatrix&, const double*, const double*, const double*, const char*, const double*, const double*)
   virtual void loadProblem(const CoinPackedMatrix& matrix,
                ^~~~~~~~~~~
/home/artelys/repositories/coin/Cbc/Clp/src/OsiClp/OsiClpSolverInterface.hpp:896:16: note:   le candidat attend 7 arguments, 10 fourni(s)
/home/artelys/repositories/coin/Cbc/Clp/src/OsiClp/OsiClpSolverInterface.hpp:916:16: note: candidate: virtual void OsiClpSolverInterface::loadProblem(const ClpMatrixBase&, const double*, const double*, const double*, const double*, const double*)
   virtual void loadProblem(const ClpMatrixBase& matrix,
                ^~~~~~~~~~~
/home/artelys/repositories/coin/Cbc/Clp/src/OsiClp/OsiClpSolverInterface.hpp:916:16: note:   le candidat attend 6 arguments, 10 fourni(s)
/home/artelys/repositories/coin/Cbc/Clp/src/OsiClp/OsiClpSolverInterface.hpp:923:16: note: candidate: virtual void OsiClpSolverInterface::loadProblem(int, int, const CoinBigIndex*, const int*, const double*, const double*, const double*, const double*, const double*, const double*)
   virtual void loadProblem(const int numcols, const int numrows,
                ^~~~~~~~~~~
/home/artelys/repositories/coin/Cbc/Clp/src/OsiClp/OsiClpSolverInterface.hpp:923:16: note:   pas de conversion connue pour convertir l'argument 3 depuis « int [3] » vers « const CoinBigIndex* {aka const long long int*} »
/home/artelys/repositories/coin/Cbc/Clp/src/OsiClp/OsiClpSolverInterface.hpp:932:16: note: candidate: virtual void OsiClpSolverInterface::loadProblem(int, int, const CoinBigIndex*, const int*, const double*, const double*, const double*, const double*, const char*, const double*, const double*)
   virtual void loadProblem(const int numcols, const int numrows,
                ^~~~~~~~~~~
/home/artelys/repositories/coin/Cbc/Clp/src/OsiClp/OsiClpSolverInterface.hpp:932:16: note:   le candidat attend 11 arguments, 10 fourni(s)
make[2]: *** [Cbc/CMakeFiles/simpleBAB.dir/build.make:63: Cbc/CMakeFiles/simpleBAB.dir/examples/simpleBAB.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:3746: Cbc/CMakeFiles/simpleBAB.dir/all] Error 2
mak



And another one with OsiGlpk:

In file included from /home/artelys/repositories/coin/Cbc/Osi/OsiGlpk/OsiGlpkSolverInterface.cpp:91:0:
/home/artelys/repositories/coin/Cbc/Osi/OsiGlpk/OsiGlpkSolverInterface.hpp:163:19: error: types retournés conflictuels spécifiés pour « virtual int OsiGlpkSolverInterface::getNumElements() const »
       virtual int getNumElements() const;
                   ^~~~~~~~~~~~~~
In file included from /home/artelys/repositories/coin/Cbc/Osi/OsiGlpk/OsiGlpkSolverInterface.hpp:14:0,
                 from /home/artelys/repositories/coin/Cbc/Osi/OsiGlpk/OsiGlpkSolverInterface.cpp:91:
/home/artelys/repositories/coin/Cbc/Osi/src/Osi/OsiSolverInterface.hpp:504:26: error:   dans la surcharge de « virtual CoinBigIndex OsiSolverInterface::getNumElements() const »
     virtual CoinBigIndex getNumElements() const = 0;
                          ^~~~~~~~~~~~~~
/home/artelys/repositories/coin/Cbc/Osi/OsiGlpk/OsiGlpkSolverInterface.cpp: Dans la fonction membre « virtual OsiSolverInterface* OsiGlpkSolverInterface::clone(bool) const »:
/home/artelys/repositories/coin/Cbc/Osi/OsiGlpk/OsiGlpkSolverInterface.cpp:2887:47: error: expression « new » invalide pour le type de classe abstraite « OsiGlpkSolverInterface »
     return( new OsiGlpkSolverInterface( *this ) );
                                               ^
In file included from /home/artelys/repositories/coin/Cbc/Osi/OsiGlpk/OsiGlpkSolverInterface.cpp:91:0:
/home/artelys/repositories/coin/Cbc/Osi/OsiGlpk/OsiGlpkSolverInterface.hpp:34:7: note:   parce que les fonctions virtuelles suivantes sont pures dans « OsiGlpkSolverInterface »:
 class OsiGlpkSolverInterface : virtual public OsiSolverInterface {
       ^~~~~~~~~~~~~~~~~~~~~~
In file included from /home/artelys/repositories/coin/Cbc/Osi/OsiGlpk/OsiGlpkSolverInterface.hpp:14:0,
                 from /home/artelys/repositories/coin/Cbc/Osi/OsiGlpk/OsiGlpkSolverInterface.cpp:91:
/home/artelys/repositories/coin/Cbc/Osi/src/Osi/OsiSolverInterface.hpp:1383:18: note:   virtual void OsiSolverInterface::loadProblem(int, int, const CoinBigIndex*, const int*, const double*, const double*, const double*, const double*, const double*, const double*)
     virtual void loadProblem (const int numcols, const int numrows,
                  ^~~~~~~~~~~
/home/artelys/repositories/coin/Cbc/Osi/src/Osi/OsiSolverInterface.hpp:1402:18: note:   virtual void OsiSolverInterface::loadProblem(int, int, const CoinBigIndex*, const int*, const double*, const double*, const double*, const double*, const char*, const double*, const double*)
     virtual void loadProblem (const int numcols, const int numrows,
                  ^~~~~~~~~~~
/home/artelys/repositories/coin/Cbc/Osi/OsiGlpk/OsiGlpkSolverInterface.cpp:2889:40: error: expression « new » invalide pour le type de classe abstraite « OsiGlpkSolverInterface »
     return( new OsiGlpkSolverInterface() );
                                        ^
make[2]: *** [Osi/OsiGlpk/CMakeFiles/libOsiGlpk.dir/build.make:63: Osi/OsiGlpk/CMakeFiles/libOsiGlpk.dir/OsiGlpkSolverInterface.cpp.o] Error 1





I think this kind of error occurs with all the Osi interfaces.

Best regards,


Yann



More information about the Cbc mailing list