[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