Dracerys in event sistemini eklerken böyle bir hata aldım daha önce böyle bir hata alan oldumu veya çözümünü bilen?
Build hatası:
linking ../game_r41025
ld: error: duplicate symbol: TEMP_BUFFER::TEMP_BUFFER(int, bool)
>>> defined at buffer_manager.cpp:5
>>> .obj/buffer_manager.o:(TEMP_BUFFER::TEMP_BUFFER(int, bool))
>>> defined at buffer_manager.cpp:5
>>> .obj/buffer_manager.o:(.text+0x0)
ld: error: duplicate symbol: TEMP_BUFFER::~TEMP_BUFFER()
>>> defined at buffer_manager.cpp:15
>>> .obj/buffer_manager.o:(TEMP_BUFFER::~TEMP_BUFFER())
>>> defined at buffer_manager.cpp:15
>>> .obj/buffer_manager.o:(.text+0x50)
ld: error: duplicate symbol: TEMP_BUFFER::read_peek()
>>> defined at buffer_manager.cpp:20
>>> .obj/buffer_manager.o:(TEMP_BUFFER::read_peek())
>>> defined at buffer_manager.cpp:20
>>> .obj/buffer_manager.o:(.text+0x90)
ld: error: duplicate symbol: TEMP_BUFFER::write(void const*, int)
>>> defined at buffer_manager.cpp:25
>>> .obj/buffer_manager.o:(TEMP_BUFFER::write(void const*, int))
>>> defined at buffer_manager.cpp:25
>>> .obj/buffer_manager.o:(.text+0xC0)
ld: error: duplicate symbol: TEMP_BUFFER::size()
>>> defined at buffer_manager.cpp:30
>>> .obj/buffer_manager.o:(TEMP_BUFFER::size())
>>> defined at buffer_manager.cpp:30
>>> .obj/buffer_manager.o:(.text+0xF0)
ld: error: duplicate symbol: TEMP_BUFFER::reset()
>>> defined at buffer_manager.cpp:35
>>> .obj/buffer_manager.o:(TEMP_BUFFER::reset())
>>> defined at buffer_manager.cpp:35
>>> .obj/buffer_manager.o:(.text+0x120)
ld: error: duplicate symbol: TEMP_BUFFER::TEMP_BUFFER(int, bool)
>>> defined at buffer_manager.cpp:5
>>> .obj/buffer_manager.o:(TEMP_BUFFER::TEMP_BUFFER(int, bool))
>>> defined at buffer_manager.cpp:5
>>> .obj/buffer_manager.o:(.text+0x0)
ld: error: duplicate symbol: TEMP_BUFFER::~TEMP_BUFFER()
>>> defined at buffer_manager.cpp:15
>>> .obj/buffer_manager.o:(TEMP_BUFFER::~TEMP_BUFFER())
>>> defined at buffer_manager.cpp:15
>>> .obj/buffer_manager.o:(.text+0x50)
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[1]: *** [Makefile:192: ../game_r41025] Error 1
gmake[1]: Leaving directory '/root/s3ll_server/Srcs/Server/game/src'
gmake: *** [Makefile:61: game] Error 2
buffer_manager.cpp:
#include "stdafx.h"
#include "buffer_manager.h"
TEMP_BUFFER::TEMP_BUFFER(int Size, bool bForceDelete)
{
forceDelete = bForceDelete;
if (forceDelete)
Size = MAX(Size, 1024 * 128);
buf = buffer_new(Size);
}
TEMP_BUFFER::~TEMP_BUFFER()
{
buffer_delete(buf);
}
const void * TEMP_BUFFER::read_peek()
{
return (buffer_read_peek(buf));
}
void TEMP_BUFFER::write(const void * data, int size)
{
buffer_write(buf, data, size);
}
int TEMP_BUFFER::size()
{
return buffer_size(buf);
}
void TEMP_BUFFER::reset()
{
buffer_reset(buf);
}
// vaffanculo a chi t'e morto martysama
Buffer_manager.h:
#ifndef __INC_METIN_II_GAME_BUFFER_MANAGER_H__
#define __INC_METIN_II_GAME_BUFFER_MANAGER_H__
#include "../../common/stl.h"
class TEMP_BUFFER
{
public:
TEMP_BUFFER(int Size = 8192, bool ForceDelete = false );
~TEMP_BUFFER();
const void * read_peek();
template<typename T, std::enable_if_t<utils::IsRawV<T>>* = nullptr>
void write(const T& c_pvData) {
write(&c_pvData, sizeof(T));
}
template<typename C, std::enable_if_t<utils::IsContiguousV<C>>* = nullptr>
void write(const C& v) {
write(v.data(), v.size() * sizeof(typename C::value_type));
}
void write(const void * data, int size);
int size();
void reset();
LPBUFFER getptr() { return buf; }
protected:
LPBUFFER buf;
bool forceDelete;
};
#endif
// vaffanculo a chi t'e morto martysama
En son bir moderatör tarafından düzenlenmiş: