Yardım db build alırken aldığım hata

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

poi

Üye
Üye
Mesaj
44
Beğeni
7
Puan
421
Ticaret Puanı
0
Merhabalar, db'yi ana dizinden gmake clean ve gmake all yaparak build almayı denerken hatalarla karşılaştım. Tam istediğim gibi bir konu kuramadım ancak eksik bilgi verdiysem bilgilendirirseniz düzeltirim.

ERROR:
compile Config.cpp
compile NetBase.cpp
In file included from ClientManager.h:13,
                 from NetBase.cpp:4:
DBManager.h:8:25: error: mysql/mysql.h: No such file or directory
In file included from DBManager.h:10,
                 from ClientManager.h:13,
                 from NetBase.cpp:4:
../../libsql/AsyncSQL.h:12:26: error: mysql/errmsg.h: No such file or directory
../../libsql/AsyncSQL.h:13:32: error: mysql/mysqld_error.h: No such file or directory
In file included from DBManager.h:10,
                 from ClientManager.h:13,
                 from NetBase.cpp:4:
../../libsql/AsyncSQL.h:35: error: ISO C++ forbids declaration of 'MYSQL_RES' with no type
../../libsql/AsyncSQL.h:35: error: expected ';' before '*' token
../../libsql/AsyncSQL.h: In constructor '_SQLResult::_SQLResult()':
../../libsql/AsyncSQL.h:22: error: class '_SQLResult' does not have any field named 'pSQLResult'
../../libsql/AsyncSQL.h: In destructor '_SQLResult::~_SQLResult()':
../../libsql/AsyncSQL.h:28: error: 'pSQLResult' was not declared in this scope
../../libsql/AsyncSQL.h:30: error: 'mysql_free_result' was not declared in this scope
../../libsql/AsyncSQL.h: At global scope:
../../libsql/AsyncSQL.h:98: error: ISO C++ forbids declaration of 'MYSQL' with no type
../../libsql/AsyncSQL.h:98: error: expected ';' before '*' token
../../libsql/AsyncSQL.h: In constructor '_SQLMsg::_SQLMsg()':
../../libsql/AsyncSQL.h:43: error: class '_SQLMsg' does not have any field named 'm_pkSQL'
../../libsql/AsyncSQL.h: In member function 'void _SQLMsg::Store()':
../../libsql/AsyncSQL.h:64: error: 'struct _SQLResult' has no member named 'pSQLResult'
../../libsql/AsyncSQL.h:64: error: 'm_pkSQL' was not declared in this scope
../../libsql/AsyncSQL.h:64: error: 'mysql_store_result' was not declared in this scope
../../libsql/AsyncSQL.h:65: error: 'mysql_insert_id' was not declared in this scope
../../libsql/AsyncSQL.h:66: error: 'mysql_affected_rows' was not declared in this scope
../../libsql/AsyncSQL.h:68: error: 'struct _SQLResult' has no member named 'pSQLResult'
../../libsql/AsyncSQL.h:70: error: 'struct _SQLResult' has no member named 'pSQLResult'
../../libsql/AsyncSQL.h:70: error: 'mysql_num_rows' was not declared in this scope
../../libsql/AsyncSQL.h:78: error: 'm_pkSQL' was not declared in this scope
../../libsql/AsyncSQL.h:78: error: 'mysql_next_result' was not declared in this scope
../../libsql/AsyncSQL.h: At global scope:
../../libsql/AsyncSQL.h:139: error: ISO C++ forbids declaration of 'MYSQL' with no type
../../libsql/AsyncSQL.h:139: error: expected ';' before '*' token
../../libsql/AsyncSQL.h:165: error: 'MYSQL' does not name a type
In file included from NetBase.cpp:4:
ClientManager.h:244: error: 'MYSQL_RES' has not been declared
ClientManager.h:245: error: 'MYSQL_RES' has not been declared
ClientManager.h:246: error: 'MYSQL_RES' has not been declared
ClientManager.h:247: error: 'MYSQL_RES' has not been declared
ClientManager.h:319: error: 'MYSQL_RES' has not been declared
Makefile:55: recipe for target '.obj/NetBase.o' failed
gmake[1]: *** [.obj/NetBase.o] Error 1
gmake[1]: Leaving directory '/home/mainline_released/Srcs/Server/db/src'
Makefile:80: recipe for target 'all' failed
gmake: *** [all] Error 2

Bu da MakeFile dosyam

MakeFile:
MAKE = gmake
CC = g++

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 = $(shell svnversion -n .)
SVN_VERSION = $(shell cat ../../__VERSION__)
P4_VERSION = $(shell cat ../../__VERSION__)
$(shell if [ ! -d $(OBJDIR) ]; then mkdir $(OBJDIR); fi)

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

CFLAGS = -g -Wall -O2 -pipe -fno-rtti -fno-exceptions -pthread -fno-strict-aliasing -D_THREAD_SAFE

ifeq ($(GCC_VERSION), 4)
CFLAGS += -mtune=i686
else
CFLAGS += -mcpu=i686
endif

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

LIBDIR += -L../../libthecore/lib -L../../libsql -L../../libpoly -L../../libgame/lib

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

LIBS = -lthecore -lsql -lpoly -lgame -lm -lz

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) $(LIBDIR) $(OBJS) $(LIBS) -o $(TARGET)
    @touch version.cpp

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

$(OBJDIR)/version.o: version.cpp
    @$(CC) $(CFLAGS) -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
 
bi 100 satır falan azaldı bir önceki hataya kıyasla ancak neden mysql'i göremediğini anlayamadım.

Makefile'lara eklediğimiz konumda, yani derlemeyi yaptığınız FreeBSD içerisinde o konumda mutlaka mysql isimli klasör olmalı ayrıca klasörün içindeki dosya düzeni de orijinal mysql düzeninde olmalı aksi halde yine hata verir çünkü örneğin AsyncSQL içersinde mysql/mysql.h olarak include ediliyor, siz bir FreeBSD içerisindeki konumun fotoğrafını atın, dosya düzeni aynı mı bakalım.
 
Makefile'lara eklediğimiz konumda, yani derlemeyi yaptığınız FreeBSD içerisinde o konumda mutlaka mysql isimli klasör olmalı ayrıca klasörün içindeki dosya düzeni de orijinal mysql düzeninde olmalı aksi halde yine hata verir çünkü örneğin AsyncSQL içersinde mysql/mysql.h olarak include ediliyor, siz bir FreeBSD içerisindeki konumun fotoğrafını atın, dosya düzeni aynı mı bakalım.
mysql dosyam usr/local/include/mysql'de tutuluyor, makefileların olduğu dizinde bir mysql klasörü yok malesef. Kurulumu yaparken bi yanlışlık mı yaptım acaba?
 
mysql dosyam usr/local/include/mysql'de tutuluyor, makefileların olduğu dizinde bir mysql klasörü yok malesef. Kurulumu yaparken bi yanlışlık mı yaptım acaba?
Makefile içerisinde belirtilen konumu kast ettim, benim verdiğim versiyonda adres doğru o zaman, o tutulduğu yerdeki mysql dosyasını açıp içinin bir fotoğrafını atar mısın ?
 
Makefile içerisinde belirtilen konumu kast ettim, benim verdiğim versiyonda adres doğru o zaman, o tutulduğu yerdeki mysql dosyasını açıp içinin bir fotoğrafını atar mısın ?
1714857054725.png


Buyrun hocam
 
:unsure: Bir sorun göremiyorum, dosya yolu da doğru, görünüşe göre dosyaların kendisi de doğru. Makefile içerisinde gösterdiğimiz yerlerde doğru yani lib kısmında da bir sıkıntı olmadığını düşünüyorum, aklıma farklı bir şey de gelmiyor belki yıllar önce benzer bir sorunla karşılaşmışta olabilirim ama hiç hatırlamıyorum.
 
:unsure: Bir sorun göremiyorum, dosya yolu da doğru, görünüşe göre dosyaların kendisi de doğru. Makefile içerisinde gösterdiğimiz yerlerde doğru yani lib kısmında da bir sıkıntı olmadığını düşünüyorum, aklıma farklı bir şey de gelmiyor belki yıllar önce benzer bir sorunla karşılaşmışta olabilirim ama hiç hatırlamıyorum.
Bi mola verme vakti geldi ya, yarın tekrar bakıp çözmeye çalışıcam. En kötü yukardaki arkadaşın dediği gibi mysql'i baştan kurmayı planlıyorum.
 
Geri
Üst