Yardım Server source extern yükseltme

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

Ulasarslan

Üye
Üye
Mesaj
10
Beğeni
0
Puan
403
Ticaret Puanı
0
GAME_MAKEFILE

Makefile:
*******************************************************************************************************************************************************************************
PLATFORM = $(shell file /bin/ls | cut -d' ' -f3 | cut -d'-' -f1)

GCC_VERSION = $(shell $(CC) --version 2>&1 | grep "(GCC)" | cut -d' ' -f3  | cut -d'.' -f1)
BSD_VERSION = $(shell uname -v 2>&1 | cut -d' ' -f2 | cut -d'.' -f1)
SVN_VERSION = 40000

CC = g++9

INCDIR =
LIBDIR =
BINDIR = ..
OBJDIR = OBJDIR
$(shell if [ ! -d $(OBJDIR) ]; then mkdir $(OBJDIR); fi)

# Standard Setting
LIBS = -pthread -lm -lmd
# Removed -fno-rtti
CFLAGS = -m32 -g -Wall -O2 -pipe -fexceptions -fno-exceptions -pthread -fno-strict-aliasing -D_THREAD_SAFE
CFLAGS += -Wno-deprecated-declarations
CFLAGS += -fstack-protector-all
CXXFLAGS = -std=c++11 -Wl,-rpath=/usr/local/lib/gcc9

# boost
INCDIR += -I../../../Extern/include/boost

# DevIL
INCDIR += -I../../../Extern/include/IL
LIBS += ../../../Extern/lib/LibIL.a\
    ../../../Extern/lib/libjasper.a\
    ../../../Extern/lib/libmng.a\
    ../../../Extern/lib/libpng.a\
    ../../../Extern/lib/libtiff.a\
    ../../../Extern/lib/libjbig.a\
    /usr/lib/liblzma.a\
    ../../../Extern/lib/liblcms.a\
    ../../../Extern/lib/libjpeg.a

# MySQL
INCDIR += -I/usr/local/include/mysql
LIBS += /usr/local/lib/mysql/libmysqlclient.a /usr/lib/libz.a

# openssl
INCDIR += -I/usr/include
LIBS += -lssl -lcrypto

# Miscellaneous external libraries
INCDIR += -I../../../Extern/include
LIBDIR += -L../../../Extern/lib
LIBS += -lcryptopp

# HackShield
INCDIR += -I../../../Extern/include/hackshield
LIBS += -lanticpxsvr

# XTrap
INCDIR += -I../../../Extern/include/xtrap


# Project Library
INCDIR += -I../../../Extern/include
INCDIR += -I../../liblua/include
LIBDIR += -L../../../Extern/lib
LIBDIR += -L../../libthecore/lib -L../../libpoly -L../../libsql -L../../libgame/lib -L../../liblua/lib
LIBDIR += -L/usr/local/lib
LIBS += -lthecore -lpoly -llua -llualib -lsql -lgame
USE_STACKTRACE = 0
ifeq ($(USE_STACKTRACE), 1)
LIBS += /usr/local/lib/libexecinfo.a
endif

TARGET  = $(BINDIR)/game

CFILE    = minilzo.c

CPPFILE = BattleArena.cpp FSM.cpp MarkConvert.cpp MarkImage.cpp MarkManager.cpp OXEvent.cpp TrafficProfiler.cpp ani.cpp\
          arena.cpp banword.cpp battle.cpp blend_item.cpp block_country.cpp buffer_manager.cpp building.cpp castle.cpp\
          char.cpp char_affect.cpp char_battle.cpp char_change_empire.cpp char_horse.cpp char_item.cpp char_manager.cpp\
          char_quickslot.cpp char_resist.cpp char_skill.cpp char_state.cpp PetSystem.cpp cmd.cpp cmd_emotion.cpp cmd_general.cpp\
          cmd_gm.cpp cmd_oxevent.cpp config.cpp constants.cpp crc32.cpp cube.cpp db.cpp desc.cpp\
          desc_client.cpp desc_manager.cpp desc_p2p.cpp dev_log.cpp dungeon.cpp empire_text_convert.cpp entity.cpp\
          entity_view.cpp event.cpp event_queue.cpp exchange.cpp file_loader.cpp fishing.cpp gm.cpp guild.cpp\
          guild_manager.cpp guild_war.cpp horse_rider.cpp horsename_manager.cpp input.cpp input_auth.cpp input_db.cpp\
          input_login.cpp input_main.cpp input_p2p.cpp input_teen.cpp input_udp.cpp ip_ban.cpp\
          item.cpp item_addon.cpp item_attribute.cpp item_manager.cpp item_manager_idrange.cpp locale.cpp\
          locale_service.cpp log.cpp login_data.cpp lzo_manager.cpp marriage.cpp matrix_card.cpp\
          messenger_manager.cpp mining.cpp mob_manager.cpp monarch.cpp motion.cpp over9refine.cpp p2p.cpp packet_info.cpp\
          party.cpp passpod.cpp pcbang.cpp polymorph.cpp priv_manager.cpp pvp.cpp\
          questevent.cpp questlua.cpp questlua_affect.cpp questlua_arena.cpp questlua_ba.cpp questlua_building.cpp\
          questlua_danceevent.cpp questlua_dungeon.cpp questlua_forked.cpp questlua_game.cpp questlua_global.cpp\
          questlua_guild.cpp questlua_horse.cpp questlua_pet.cpp questlua_item.cpp questlua_marriage.cpp questlua_mgmt.cpp\
          questlua_monarch.cpp questlua_npc.cpp questlua_oxevent.cpp questlua_party.cpp questlua_pc.cpp\
          questlua_quest.cpp questlua_target.cpp questmanager.cpp questnpc.cpp questpc.cpp\
          refine.cpp regen.cpp safebox.cpp sectree.cpp sectree_manager.cpp sequence.cpp shop.cpp\
          skill.cpp start_position.cpp target.cpp text_file_loader.cpp trigger.cpp utils.cpp vector.cpp war_map.cpp\
          wedding.cpp xmas_event.cpp version.cpp panama.cpp threeway_war.cpp map_location.cpp auth_brazil.cpp\
          BlueDragon.cpp BlueDragon_Binder.cpp DragonLair.cpp questlua_dragonlair.cpp\
          HackShield.cpp HackShield_Impl.cpp char_hackshield.cpp skill_power.cpp affect.cpp\
          SpeedServer.cpp questlua_speedserver.cpp XTrapManager.cpp\
          auction_manager.cpp FileMonitor_FreeBSD.cpp ClientPackageCryptInfo.cpp cipher.cpp\
          buff_on_attributes.cpp dragon_soul_table.cpp DragonSoul.cpp\
          group_text_parse_tree.cpp char_dragonsoul.cpp questlua_dragonsoul.cpp\
          shop_manager.cpp shopEx.cpp item_manager_read_tables.cpp


COBJS    = $(CFILE:%.c=$(OBJDIR)/%.o)
CPPOBJS    = $(CPPFILE:%.cpp=$(OBJDIR)/%.o)

MAINOBJ = $(OBJDIR)/main.o
MAINCPP = main.cpp


$(OBJDIR)/minilzo.o: minilzo.c
    @$(CC) $(CFLAGS) $(CXXFLAGS) $(INCDIR) -c $< -o $@
    @echo compile $<

$(OBJDIR)/version.o: version.cpp
    @$(CC) $(CFLAGS) $(CXXFLAGS) -D__SVN_VERSION__=\"$(SVN_VERSION)\" -c $< -o $@
    @echo compile $<

$(OBJDIR)/%.o: %.cpp
    @echo compile $<
    @$(CC) $(CFLAGS) $(CXXFLAGS) $(INCDIR) -c $< -o $@

$(TARGET): $(CPPOBJS) $(COBJS) $(MAINOBJ)
    @echo linking $(TARGET)....
    @$(CC) $(CFLAGS) $(CXXFLAGS) $(LIBDIR) $(COBJS) $(CPPOBJS) $(MAINOBJ) $(LIBS) -o $(TARGET)


clean:
    @rm -f $(COBJS) $(CPPOBJS)
    @rm -f $(BINDIR)/game* $(BINDIR)/conv

tag:
    ctags *.cpp *.h *.c

dep:
    makedepend -f Depend $(INCDIR) -I/usr/include/c++/3.3 -I/usr/include/c++/4.2 -p$(OBJDIR)/ $(CPPFILE) $(CFILE) $(MAINCPP) 2> /dev/null > Depend

sinclude Depend
***************************************************************************************************************************************************************************
DB_MAKEFILE

Makefile:
MAKE = gmake
CC = g++9

INCDIR =
LIBDIR =
BINDIR = ..
OBJDIR = .obj

GCC_VERSION = $(shell $(CC) --version 2>&1 | grep "(GCC)" | cut -d' ' -f3  | cut -d'.' -f1)
BSD_VERSION = $(shell uname -v 2>&1 | cut -d' ' -f2 | cut -d'.' -f1)
P4_VERSION = 40000
$(shell if [ ! -d $(OBJDIR) ]; then mkdir $(OBJDIR); fi)

TARGET = $(BINDIR)/db_r$(P4_VERSION)

CFLAGS = -m32 -g -Wall -O2 -pipe -fno-rtti -fno-exceptions -pthread -fno-strict-aliasing -D_THREAD_SAFE
CFLAGS += -Wno-deprecated-declarations
CXXFLAGS = -std=c++11 -Wl,-rpath=/usr/local/lib/gcc9

# boost
INCDIR += -I../../../Extern/include

#MySQL
INCDIR += -I/usr/local/include/mysql
LIBDIR += -I/usr/local/lib/mysql/libmysqlclient.a /usr/lib/libz.a

# Project Library
INCDIR += -I/usr/local/include
LIBDIR += -L../../libthecore/lib -L../../libsql -L../../libpoly -L../../libgame/lib
LIBS += -lthecore -lsql -lpoly -lgame -lm

#OpenSSL
LIBS += -lssl -lcrypto

SRCS =    Config.cpp NetBase.cpp Peer.cpp PeerBase.cpp Main.cpp Lock.cpp DBManager.cpp \
        Cache.cpp LoginData.cpp ClientManager.cpp ClientManagerPlayer.cpp ClientManagerLogin.cpp \
        ClientManagerBoot.cpp ClientManagerParty.cpp ClientManagerGuild.cpp GuildManager.cpp HB.cpp \
        PrivManager.cpp MoneyLog.cpp ItemAwardManager.cpp ClientManagerEventFlag.cpp Marriage.cpp \
        Monarch.cpp BlockCountry.cpp ItemIDRangeManager.cpp ClientManagerHorseName.cpp version.cpp \
        AuctionManager.cpp ProtoReader.cpp CsvReader.cpp

OBJS = $(SRCS:%.cpp=$(OBJDIR)/%.o)

default: $(TARGET)

$(TARGET): $(OBJS)
    @echo linking ...
    @$(CC) $(CFLAGS) $(CXXFLAGS) $(LIBDIR) $(OBJS) $(LIBS) -o $(TARGET)
    @touch version.cpp

$(OBJDIR)/%.o: %.cpp
    @echo compile $<
    @$(CC) $(CFLAGS) $(CXXFLAGS) $(INCDIR) -c $< -o $@

$(OBJDIR)/version.o: version.cpp
    @$(CC) $(CFLAGS) $(CXXFLAGS) -D__USER__=\"$(USER)\" -D__HOSTNAME__=\"$(HOSTNAME)\" -D__PWD__=\"$(PWD)\" -D__P4_VERSION__=\"$(P4_VERSION)\" -c $< -o $@
    @echo compile $<

$(OBJDIR):
    @mkdir $(OBJDIR)

clean:
    @rm -f $(OBJS) $(BINDIR)/db_r*

dep:
    @touch Depend
    makedepend -fDepend $(INCDIR) -I/usr/include/c++/3.3 -I/usr/include/c++/4.2 -p$(OBJDIR)/ $(SRCS) 2> /dev/null

sinclude Depend
********************************************************************************************************************************************************************************
Build hatası
Bash:
linking ...
/usr/local/bin/ld: .obj/ClientManager.o: in function `CClientManager::RESULT_SAFEBOX_CHANGE_PASSWORD(CPeer*, _SQLMsg*)':
/usr/Srcs/Server/db/src/ClientManager.cpp:874: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManager.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManager.o: in function `CClientManager::QUERY_EMPIRE_SELECT(CPeer*, unsigned int, SEmpireSelectPacket*)':
/usr/Srcs/Server/db/src/ClientManager.cpp:1012: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManager.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManager.o: in function `CClientManager::RESULT_PRICELIST_LOAD(CPeer*, _SQLMsg*)':
/usr/Srcs/Server/db/src/ClientManager.cpp:922: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManager.o: in function `CClientManager::RESULT_PRICELIST_LOAD_FOR_UPDATE(_SQLMsg*)':
/usr/Srcs/Server/db/src/ClientManager.cpp:965: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManager.o: in function `CClientManager::BlockChat(TPacketBlockChat*)':
/usr/Srcs/Server/db/src/ClientManager.cpp:2103: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManager.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManager.o: in function `CClientManager::ChangeMonarchLord(CPeer*, unsigned int, tChangeMonarchLord*)':
/usr/Srcs/Server/db/src/ClientManager.cpp:4199: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManager.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManager.o: in function `CClientManager::InitializeLocalization()':
/usr/Srcs/Server/db/src/ClientManager.cpp:3330: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManager.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManager.o: in function `CClientManager::__GetAdminInfo(char const*, std::vector<TAdminInfo, std::allocator<TAdminInfo> >&)':
/usr/Srcs/Server/db/src/ClientManager.cpp:3727: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManager.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManager.o: in function `CClientManager::RESULT_SAFEBOX_LOAD(CPeer*, _SQLMsg*)':
/usr/Srcs/Server/db/src/ClientManager.cpp:534: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManager.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManager.o: in function `CClientManager::__GetHostInfo(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)':
/usr/Srcs/Server/db/src/ClientManager.cpp:3780: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManager.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManagerPlayer.o: in function `CreatePlayerTableFromRes(st_mysql_res*, SPlayerTable*)':
/usr/Srcs/Server/db/src/ClientManagerPlayer.cpp:447: undefined reference to `mysql_num_rows'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/ClientManagerPlayer.cpp:452: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerPlayer.o: in function `CClientManager::__RESULT_PLAYER_DELETE(CPeer*, _SQLMsg*)':
/usr/Srcs/Server/db/src/ClientManagerPlayer.cpp:1039: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerPlayer.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManagerPlayer.o:/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: more undefined references to `mysql_free_result' follow
/usr/local/bin/ld: .obj/ClientManagerPlayer.o: in function `CClientManager::RESULT_HIGHSCORE_REGISTER(CPeer*, _SQLMsg*)':
/usr/Srcs/Server/db/src/ClientManagerPlayer.cpp:1258: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerPlayer.o: in function `CreateItemTableFromRes(st_mysql_res*, std::vector<SPlayerItem, std::allocator<SPlayerItem> >*, unsigned int)':
/usr/Srcs/Server/db/src/ClientManagerPlayer.cpp:35: undefined reference to `mysql_num_rows'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/ClientManagerPlayer.cpp:45: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerPlayer.o: in function `CClientManager::RESULT_AFFECT_LOAD(CPeer*, st_mysql_res*, unsigned int)':
/usr/Srcs/Server/db/src/ClientManagerPlayer.cpp:702: undefined reference to `mysql_num_rows'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/ClientManagerPlayer.cpp:715: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerPlayer.o: in function `CClientManager::RESULT_QUEST_LOAD(CPeer*, st_mysql_res*, unsigned int, unsigned int)':
/usr/Srcs/Server/db/src/ClientManagerPlayer.cpp:742: undefined reference to `mysql_num_rows'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/ClientManagerPlayer.cpp:759: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerPlayer.o: in function `CClientManager::__QUERY_PLAYER_CREATE(CPeer*, unsigned int, SPlayerCreatePacket*)':
/usr/Srcs/Server/db/src/ClientManagerPlayer.cpp:826: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/ClientManagerPlayer.cpp:860: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerPlayer.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManagerPlayer.o:/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: more undefined references to `mysql_free_result' follow
/usr/local/bin/ld: .obj/ClientManagerLogin.o: in function `CreateAccountPlayerDataFromRes(st_mysql_res*, SAccountTable*)':
/usr/Srcs/Server/db/src/ClientManagerLogin.cpp:279: undefined reference to `mysql_num_rows'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/ClientManagerLogin.cpp:281: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerLogin.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManagerLogin.o: in function `CClientManager::RESULT_LOGIN_BY_KEY(CPeer*, _SQLMsg*)':
/usr/Srcs/Server/db/src/ClientManagerLogin.cpp:200: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerLogin.o: in function `CreateAccountTableFromRes(st_mysql_res*)':
/usr/Srcs/Server/db/src/ClientManagerLogin.cpp:246: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerLogin.o: in function `CClientManager::QUERY_CHANGE_NAME(CPeer*, unsigned int, SPacketGDChangeName*)':
/usr/Srcs/Server/db/src/ClientManagerLogin.cpp:519: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerLogin.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManagerBoot.o: in function `CClientManager::InitializeRefineTable()':
/usr/Srcs/Server/db/src/ClientManagerBoot.cpp:133: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerBoot.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManagerBoot.o: in function `CClientManager::InitializeQuestItemTable()':
/usr/Srcs/Server/db/src/ClientManagerBoot.cpp:535: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerBoot.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManagerBoot.o: in function `CClientManager::InitializeSkillTable()':
/usr/Srcs/Server/db/src/ClientManagerBoot.cpp:880: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerBoot.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManagerBoot.o: in function `CClientManager::InitializeBanwordTable()':
/usr/Srcs/Server/db/src/ClientManagerBoot.cpp:950: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerBoot.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManagerBoot.o: in function `CClientManager::InitializeItemAttrTable()':
/usr/Srcs/Server/db/src/ClientManagerBoot.cpp:991: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerBoot.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManagerBoot.o: in function `CClientManager::InitializeItemRareTable()':
/usr/Srcs/Server/db/src/ClientManagerBoot.cpp:1065: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerBoot.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManagerBoot.o: in function `CClientManager::InitializeLandTable()':
/usr/Srcs/Server/db/src/ClientManagerBoot.cpp:1138: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerBoot.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManagerBoot.o: in function `CClientManager::InitializeObjectProto()':
/usr/Srcs/Server/db/src/ClientManagerBoot.cpp:1241: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerBoot.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManagerBoot.o: in function `CClientManager::InitializeObjectTable()':
/usr/Srcs/Server/db/src/ClientManagerBoot.cpp:1308: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerBoot.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManagerBoot.o: in function `CClientManager::InitializeShopTable()':
/usr/Srcs/Server/db/src/ClientManagerBoot.cpp:467: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerBoot.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManagerGuild.o: in function `CClientManager::GuildAddMember(CPeer*, SPacketGDGuildAddMember*)':
/usr/Srcs/Server/db/src/ClientManagerGuild.cpp:49: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerGuild.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/GuildManager.o: in function `GetAverageGuildMemberLevel(unsigned int)':
/usr/Srcs/Server/db/src/GuildManager.cpp:968: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/GuildManager.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/GuildManager.o: in function `GetGuildMemberCount(unsigned int)':
/usr/Srcs/Server/db/src/GuildManager.cpp:983: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/GuildManager.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/GuildManager.o: in function `CGuildManager::parseResult(_SQLResult*)':
/usr/Srcs/Server/db/src/GuildManager.cpp:134: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/GuildManager.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/GuildManager.o: in function `CGuildManager::ResultRanking(st_mysql_res*)':
/usr/Srcs/Server/db/src/GuildManager.cpp:229: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/GuildManager.o: in function `CGuildWarReserve::Initialize()':
/usr/Srcs/Server/db/src/GuildManager.cpp:1228: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/GuildManager.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/GuildManager.o: in function `CGuildManager::BootReserveWar()':
/usr/Srcs/Server/db/src/GuildManager.cpp:911: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/GuildManager.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/HB.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/HB.o: in function `PlayerHB::Initialize()':
/usr/Srcs/Server/db/src/HB.cpp:27: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/HB.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ItemAwardManager.o: in function `ItemAwardManager::Load(_SQLMsg*)':
/usr/Srcs/Server/db/src/ItemAwardManager.cpp:33: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerEventFlag.o: in function `CClientManager::LoadEventFlag()':
/usr/Srcs/Server/db/src/ClientManagerEventFlag.cpp:19: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerEventFlag.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/Marriage.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/Marriage.o: in function `marriage::CManager::Initialize()':
/usr/Srcs/Server/db/src/Marriage.cpp:53: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/Marriage.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/Marriage.o:/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: more undefined references to `mysql_free_result' follow
/usr/local/bin/ld: .obj/Monarch.o: in function `CMonarch::LoadMonarch()':
/usr/Srcs/Server/db/src/Monarch.cpp:189: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/Monarch.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/Monarch.o: in function `CMonarch::SetMonarch(char const*)':
/usr/Srcs/Server/db/src/Monarch.cpp:224: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/Monarch.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/Monarch.o:/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: more undefined references to `mysql_free_result' follow
/usr/local/bin/ld: .obj/BlockCountry.o: in function `CBlockCountry::Load()':
/usr/Srcs/Server/db/src/BlockCountry.cpp:59: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/BlockCountry.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/BlockCountry.o: in function `CBlockCountry::Load()':
/usr/Srcs/Server/db/src/BlockCountry.cpp:88: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/BlockCountry.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ItemIDRangeManager.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ItemIDRangeManager.o: in function `CItemIDRangeManager::BuildRange(unsigned int, unsigned int, tItemIDRange&)':
/usr/Srcs/Server/db/src/ItemIDRangeManager.cpp:102: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: /usr/Srcs/Server/db/src/ItemIDRangeManager.cpp:134: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerHorseName.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/ClientManagerHorseName.o: in function `CClientManager::AckHorseName(unsigned int, CPeer*)':
/usr/Srcs/Server/db/src/ClientManagerHorseName.cpp:33: undefined reference to `mysql_fetch_row'
/usr/local/bin/ld: .obj/ClientManagerHorseName.o: in function `_SQLResult::~_SQLResult()':
/usr/Srcs/Server/db/src/../../libsql/AsyncSQL.h:30: undefined reference to `mysql_free_result'
/usr/local/bin/ld: .obj/DBManager.o: in function `CDBManager::EscapeString(void*, void const*, unsigned long, int)':
/usr/Srcs/Server/db/src/DBManager.cpp:163: undefined reference to `mysql_real_escape_string'
/usr/local/bin/ld: ../../libsql/libsql.a(AsyncSQL.o): in function `CAsyncSQL::Destroy()':
AsyncSQL.cpp:(.text+0x28): undefined reference to `mysql_close'
/usr/local/bin/ld: ../../libsql/libsql.a(AsyncSQL.o): in function `CAsyncSQL::QueryLocaleSet()':
AsyncSQL.cpp:(.text+0xea): undefined reference to `mysql_set_character_set'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x165): undefined reference to `mysql_error'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x16f): undefined reference to `mysql_errno'
/usr/local/bin/ld: ../../libsql/libsql.a(AsyncSQL.o): in function `CAsyncSQL::Connect()':
AsyncSQL.cpp:(.text+0x1ae): undefined reference to `mysql_init'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x1f2): undefined reference to `mysql_real_connect'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x212): undefined reference to `mysql_options'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x23f): undefined reference to `mysql_thread_id'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x265): undefined reference to `mysql_error'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x295): undefined reference to `mysql_options'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x2a9): undefined reference to `mysql_error'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x2d5): undefined reference to `mysql_error'
/usr/local/bin/ld: ../../libsql/libsql.a(AsyncSQL.o): in function `CAsyncSQL::EscapeString(char*, unsigned int, char const*, unsigned int)':
AsyncSQL.cpp:(.text+0x9c3): undefined reference to `mysql_real_escape_string'
/usr/local/bin/ld: ../../libsql/libsql.a(AsyncSQL.o): in function `CAsyncSQL::DirectQuery(char const*)':
AsyncSQL.cpp:(.text+0xaac): undefined reference to `mysql_thread_id'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0xb49): undefined reference to `mysql_real_query'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0xb65): undefined reference to `mysql_num_rows'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0xb91): undefined reference to `mysql_next_result'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0xbcf): undefined reference to `mysql_store_result'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0xbd9): undefined reference to `mysql_insert_id'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0xbe8): undefined reference to `mysql_affected_rows'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0xc75): undefined reference to `mysql_thread_id'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0xc98): undefined reference to `mysql_error'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0xccb): undefined reference to `mysql_errno'
/usr/local/bin/ld: ../../libsql/libsql.a(AsyncSQL.o): in function `CAsyncSQL::ChildLoop()':
AsyncSQL.cpp:(.text+0x1264): undefined reference to `mysql_thread_id'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x127e): undefined reference to `mysql_real_query'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x128e): undefined reference to `mysql_errno'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x12a2): undefined reference to `mysql_error'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x1375): undefined reference to `mysql_num_rows'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x13a2): undefined reference to `mysql_next_result'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x13e0): undefined reference to `mysql_store_result'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x13eb): undefined reference to `mysql_insert_id'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x13fa): undefined reference to `mysql_affected_rows'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x147e): undefined reference to `mysql_thread_id'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x149c): undefined reference to `mysql_real_query'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x14f5): undefined reference to `mysql_num_rows'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x1522): undefined reference to `mysql_next_result'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x1560): undefined reference to `mysql_store_result'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x156a): undefined reference to `mysql_insert_id'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x1579): undefined reference to `mysql_affected_rows'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x1682): undefined reference to `mysql_free_result'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x1735): undefined reference to `mysql_thread_id'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x1759): undefined reference to `mysql_errno'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x176b): undefined reference to `mysql_error'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x1821): undefined reference to `mysql_free_result'
/usr/local/bin/ld: AsyncSQL.cpp:(.text+0x18bd): undefined reference to `mysql_thread_id'
collect2: error: ld returned 1 exit status
gmake: *** [Makefile:48: ../db_r40000] Error 1
 
En son bir moderatör tarafından düzenlenmiş:
Veritabanı kodlarında hata vermiş. Makinenizde MySQL kurulu mu?
 
Veritabanı kodlarında hata vermiş. Makinenizde MySQL kurulu mu?
Elbette
1649686810567.png
 
libsql/AsyncSQL.h kodlarınızı paylaşabilir misiniz?
 
libsql/AsyncSQL.h kodlarınızı paylaşabilir misiniz?
.header:
#ifndef __INC_METIN_II_ASYNCSQL_H__
#define __INC_METIN_II_ASYNCSQL_H__

#include "../libthecore/include/stdafx.h"
#include "../libthecore/include/log.h"

#include <string>
#include <queue>
#include <vector>
#include <map>
#include <mysql/mysql.h>
#include <mysql/errmsg.h>
#include <mysql/mysqld_error.h>

#include "Semaphore.h"

#define QUERY_MAX_LEN 8192

typedef struct _SQLResult
{
    _SQLResult()
           : pSQLResult(NULL), uiNumRows(0), uiAffectedRows(0), uiInsertID(0)
    {
    }

    ~_SQLResult()
    {
        if (pSQLResult)
        {
            mysql_free_result(pSQLResult);
            pSQLResult = NULL;
        }
    }

    MYSQL_RES *    pSQLResult;
    uint32_t        uiNumRows;
    uint32_t        uiAffectedRows;
    uint32_t        uiInsertID;
} SQLResult;

typedef struct _SQLMsg
{
    _SQLMsg() : m_pkSQL(NULL), iID(0), uiResultPos(0), pvUserData(NULL), bReturn(false), uiSQLErrno(0)
    {
    }

    ~_SQLMsg()
    {
        std::vector<SQLResult *>::iterator first = vec_pkResult.begin();
        std::vector<SQLResult *>::iterator past = vec_pkResult.end();

        while (first != past)
            delete *(first++);

        vec_pkResult.clear();
    }

    void Store()
    {
        do
        {
            SQLResult * pRes = new SQLResult;

            pRes->pSQLResult = mysql_store_result(m_pkSQL);
            pRes->uiInsertID = mysql_insert_id(m_pkSQL);
            pRes->uiAffectedRows = mysql_affected_rows(m_pkSQL);

            if (pRes->pSQLResult)
            {
                pRes->uiNumRows = mysql_num_rows(pRes->pSQLResult);
            }
            else
            {
                pRes->uiNumRows = 0;
            }

            vec_pkResult.push_back(pRes);
        } while (!mysql_next_result(m_pkSQL));
    }

    SQLResult * Get()
    {
        if (uiResultPos >= vec_pkResult.size())
            return NULL;

        return vec_pkResult[uiResultPos];
    }

    bool Next()
    {
        if (uiResultPos + 1 >= vec_pkResult.size())
            return false;

        ++uiResultPos;
        return true;
    }

    MYSQL *            m_pkSQL;
    int                iID;
    std::string            stQuery;

    std::vector<SQLResult *>    vec_pkResult;    // result º¤ÅÍ
    unsigned int        uiResultPos;    // ÇöÀç result À§Ä¡

    void *            pvUserData;
    bool            bReturn;

    unsigned int        uiSQLErrno;
} SQLMsg;

class CAsyncSQL
{
    public:
        CAsyncSQL();
        virtual ~CAsyncSQL();

        void        Quit();

        bool           Setup(const char * c_pszHost, const char * c_pszUser, const char * c_pszPassword, const char * c_pszDB, const char * c_pszLocale,
            bool bNoThread = false, int iPort = 0);
        bool        Setup(CAsyncSQL * sql, bool bNoThread = false);

        bool        Connect();
        bool        IsConnected() { return m_bConnected; }
        bool        QueryLocaleSet();

        void        AsyncQuery(const char * c_pszQuery);
        void        ReturnQuery(const char * c_pszQuery, void * pvUserData);
        SQLMsg *    DirectQuery(const char * c_pszQuery);

        DWORD        CountQuery();
        DWORD        CountResult();

        void        PushResult(SQLMsg * p);
        bool        PopResult(SQLMsg ** pp);

        void        ChildLoop();

        MYSQL *        GetSQLHandle();

        int            CountQueryFinished();
        void        ResetQueryFinished();

        size_t        EscapeString(char* dst, size_t dstSize, const char *src, size_t srcSize);

    protected:
        void        Destroy();

        void        PushQuery(SQLMsg * p);

        bool        PeekQuery(SQLMsg ** pp);
        bool        PopQuery(int iID);

        bool        PeekQueryFromCopyQueue(SQLMsg ** pp );
        INT            CopyQuery();
        bool        PopQueryFromCopyQueue();

    public:
        int            GetCopiedQueryCount();
        void        ResetCopiedQueryCount();
        void        AddCopiedQueryCount( int iCopiedQuery );

        //private:
    protected:
        MYSQL m_hDB;

        std::string    m_stHost;
        std::string    m_stUser;
        std::string    m_stPassword;
        std::string    m_stDB;
        std::string    m_stLocale;

        int    m_iMsgCount;
        int    m_aiPipe[2];
        int m_iPort;

        std::queue<SQLMsg *> m_queue_query;
        std::queue<SQLMsg *> m_queue_query_copy;
        //std::map<int, SQLMsg *>    m_map_kSQLMsgUnfinished;

        std::queue<SQLMsg *> m_queue_result;

        volatile bool m_bEnd;

#ifndef __WIN32__
        pthread_t m_hThread;
        pthread_mutex_t    * m_mtxQuery;
        pthread_mutex_t    * m_mtxResult;
#else
        HANDLE m_hThread;
        CRITICAL_SECTION* m_mtxQuery;
        CRITICAL_SECTION* m_mtxResult;
#endif

        CSemaphore m_sem;

        int    m_iQueryFinished;

        unsigned long m_ulThreadID;
        bool m_bConnected;
        int    m_iCopiedQuery;
};

class CAsyncSQL2 : public CAsyncSQL
{
    public:
        void SetLocale ( const std::string & stLocale );
};

#endif

libsql/AsyncSQL.h kodlarınızı paylaşabilir misiniz?
Whistle bulabildin mi ?
 
Geri
Üst