[Cbc] Problem during compilation with COIN_BIG_INDEX=2

ycollette.nospam at free.fr ycollette.nospam at free.fr
Thu Nov 9 03:02:14 EST 2017


Hello,

Thanks for the fixes for the examples.

I have found others compilation problems with some Osi interfaces (I only have tested Glpk and Xpress interfaces).

For Xpress:

[ 57%] Building CXX object Osi/OsiXpr/CMakeFiles/libOsiXpr.dir/__/src/OsiXpr/OsiXprSolverInterface.cpp.o
In file included from /home/artelys/repositories/coin/Cbc/Osi/src/OsiXpr/OsiXprSolverInterface.cpp:19:0:
/home/artelys/repositories/coin/Cbc/Osi/src/OsiXpr/OsiXprSolverInterface.hpp:137:19: error: types retournés conflictuels spécifiés pour « virtual int OsiXprSolverInterface::getNumElements() const »
       virtual int getNumElements() const;
                   ^~~~~~~~~~~~~~
In file included from /home/artelys/repositories/coin/Cbc/Osi/src/OsiXpr/OsiXprSolverInterface.hpp:11:0,
                 from /home/artelys/repositories/coin/Cbc/Osi/src/OsiXpr/OsiXprSolverInterface.cpp:19:
/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/src/OsiXpr/OsiXprSolverInterface.cpp: Dans la fonction membre « virtual const CoinPackedMatrix* OsiXprSolverInterface::getMatrixByRow() const »:
/home/artelys/repositories/coin/Cbc/Osi/src/OsiXpr/OsiXprSolverInterface.cpp:853:35: error: pas de fonction concordante pour l'appel à « CoinPackedMatrix::assignMatrix(bool, int&, int&, int&, double*&, int*&, int*&, int*&) »
      element, index, start, length);
                                   ^
In file included from /home/artelys/repositories/coin/Cbc/Osi/src/Osi/OsiSolverInterface.hpp:15:0,
                 from /home/artelys/repositories/coin/Cbc/Osi/src/OsiXpr/OsiXprSolverInterface.hpp:11,
                 from /home/artelys/repositories/coin/Cbc/Osi/src/OsiXpr/OsiXprSolverInterface.cpp:19:
/home/artelys/repositories/coin/Cbc/CoinUtils/src/CoinPackedMatrix.hpp:416:10: note: candidate: void CoinPackedMatrix::assignMatrix(bool, int, int, CoinBigIndex, double*&, int*&, CoinBigIndex*&, int*&, int, CoinBigIndex)
     void assignMatrix(const bool colordered,
          ^~~~~~~~~~~~
/home/artelys/repositories/coin/Cbc/CoinUtils/src/CoinPackedMatrix.hpp:416:10: note:   pas de conversion connue pour convertir l'argument 7 depuis « int* » vers « CoinBigIndex*& {aka long long int*&} »
/home/artelys/repositories/coin/Cbc/Osi/src/OsiXpr/OsiXprSolverInterface.cpp: Dans la fonction membre « virtual void OsiXprSolverInterface::loadProblem(const CoinPackedMatrix&, const double*, const double*, const double*, const char*, const double*, const double*) »:
/home/artelys/repositories/coin/Cbc/Osi/src/OsiXpr/OsiXprSolverInterface.cpp:1814:42: error: const_cast invalide à partir du type « const CoinBigIndex* {aka const long long int*} » vers le type « int* »
     const_cast<int*>(m->getVectorStarts()),
                                          ^
/home/artelys/repositories/coin/Cbc/Osi/src/OsiXpr/OsiXprSolverInterface.cpp: Dans la fonction membre « virtual OsiSolverInterface* OsiXprSolverInterface::clone(bool) const »:
/home/artelys/repositories/coin/Cbc/Osi/src/OsiXpr/OsiXprSolverInterface.cpp:2334:43: error: expression « new » invalide pour le type de classe abstraite « OsiXprSolverInterface »
    return (new OsiXprSolverInterface(*this));
                                           ^
In file included from /home/artelys/repositories/coin/Cbc/Osi/src/OsiXpr/OsiXprSolverInterface.cpp:19:0:
/home/artelys/repositories/coin/Cbc/Osi/src/OsiXpr/OsiXprSolverInterface.hpp:21:7: note:   parce que les fonctions virtuelles suivantes sont pures dans « OsiXprSolverInterface »:
 class OsiXprSolverInterface : virtual public OsiSolverInterface {
       ^~~~~~~~~~~~~~~~~~~~~
In file included from /home/artelys/repositories/coin/Cbc/Osi/src/OsiXpr/OsiXprSolverInterface.hpp:11:0,
                 from /home/artelys/repositories/coin/Cbc/Osi/src/OsiXpr/OsiXprSolverInterface.cpp:19:
/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,
                  ^~~~~~~~~~~
make[2]: *** [Osi/OsiXpr/CMakeFiles/libOsiXpr.dir/build.make:63: Osi/OsiXpr/CMakeFiles/libOsiXpr.dir/__/src/OsiXpr/OsiXprSolverInterface.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2523: Osi/OsiXpr/CMakeFiles/libOsiXpr.dir/all] Error 2
make: *** [Makefile:163: all] Error 2




For glpk:

[ 23%] Building CXX object Osi/OsiGlpk/CMakeFiles/libOsiGlpk.dir/OsiGlpkSolverInterface.cpp.o
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
make[1]: *** [CMakeFiles/Makefile2:2580: Osi/OsiGlpk/CMakeFiles/libOsiGlpk.dir/all] Error 2


Best regards,

Yann



More information about the Cbc mailing list