Kompilační chyba v C++ projektu

Dalibor Straka dast na panelnet.cz
Sobota Únor 3 18:43:43 CET 2007


On Sat, Feb 03, 2007 at 11:26:08AM +0100, Vancl Miroslav (QRIS) wrote:
> 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.

Tak proste prepiste -mcpu=i686 na -march=i686, treba hromadnym
nahrazenim

> ../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);
> }
A kdyz umazeme slovicko static, stane se co?

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

-- Dalibor Straka


Další informace o konferenci Linux