Kompilační chyba v C++ projektu

Vancl Miroslav (QRIS) miroslav.vancl na qris.cz
Sobota Únor 3 11:26:08 CET 2007


Bohužel neznám C++ a potřeboval bych rychle maličko upravit jednu utilitu (FireBird 1.5.3 - fbmgr).
Potíž je v tom, že se mi nedaří přeložit ani originální zdrojáky. Objevuje se chyba:

# make utilities/ibmgr
g++   -I../src/include/gen -I../src/include -ggdb -O3 -march=i586 -mcpu=i686 -fno-omit-frame-pointer -fno-builtin -DNDEBUG -DLINUX -pipe -MMD -fPIC  -DPROD_BUILD    utilities/ibmgr.cpp   -o utilities/ibmgr
`-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead.
../src/include/../common/classes/alloc.h:256: error: 'void* operator new(size_t, Firebird::MemoryPool&)' may not be declared as static
../src/include/../common/classes/alloc.h:260: error: 'void* operator new [](size_t, Firebird::MemoryPool&)' may not be declared as static
make: *** [utilities/ibmgr] Error 1


Překládané řádky alloc.h vypadají takto:

static inline void* operator new(size_t s, Firebird::MemoryPool& pool) {
        return pool.allocate(s);
//      return pool.calloc(s);
}
static inline void* operator new[](size_t s, Firebird::MemoryPool& pool) {
        return pool.allocate(s);
//      return pool.calloc(s);
}

Odhaduju, že se jedná o nějakou nekompatibilitu kompilačního prostředí ale netuším jakou. Překlad dělám ve SLES 10.

Díky za každou radu

M. Vancl
ICQ 173540345


Další informace o konferenci Linux