Çözüldü Event sistemi build hatası

  • Konuyu açan Konuyu açan damador
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 2
  • Gösterim Gösterim 34
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

damador

MT Üye
MT Üye
Mesaj
177
Çözümler
9
Beğeni
63
Puan
489
Ticaret Puanı
0
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ı:
Genişlet Daralt Kopyala
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:
Genişlet Daralt Kopyala
#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:
Genişlet Daralt Kopyala
#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ş:
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst