Serveri 64 bite taşımak değil zaten kaynak dosyalarını 64 bit makineden derlemek. Kimse sourceyi 64 bite yükselttiğini falan söylemiyor bazıları bu şekilde anlıyor ama yanlış bir anlaşılma. 64 bit sunucuda derlenmiş libler ile veri tipleri düzenlenmiş ve ekstra değişiklikler ile 64 bit makinada 32 bit sourceyi derleyebilmek özet olarak. Yoksa dediğiniz gibi server 64 client 32 olmaz.Server’i 64’e taşımamışsınız. Sanırım 64 bit makinede 32 bit derleme yapmaktan bahsediyorsunuz. Makefile üzerinde ufak bir düzenleme ve 32 bit libleride yanına verdikten sonra 64'te derleme alabilrisiniz. Server’i 64’e çekerseniz çalıştırabilirsiniz ancak client ile bağlanamazsınız. Client’i de 64’e çekmeniz gerekir ki bu büyük bir başarı olur. Yada server kodlarında tüm ambiguous değişkenleri sabit boyutlu değişkenler ile değiştirerek 32 bit client değişkenleri ile aralarında fark olmamasını sağlarsınız. Yabancı forumun adminine sormuştum o bu şekil bir şey yapmıştı, sistemini test etmiştim bağlanılıyordu bir gaza gelip bende 64’e çekiyordum ki akıl danıştıktan sonra çokta mühim olmadığını düşündüm.
Bknz
Linkleri görebilmek için giriş yap veya kayıt ol.
Linkleri görebilmek için giriş yap veya kayıt ol.
Konu başlığından o şekilde anlaşılıyor, yorumlarda da bahsedilmiş zaten benim yazma sebebim biri 64'e geçirmek isterse başlayabileceği bir ip ucu bırakmak.Serveri 64 bite taşımak değil zaten kaynak dosyalarını 64 bit makineden derlemek. Kimse sourceyi 64 bite yükselttiğini falan söylemiyor bazıları bu şekilde anlıyor ama yanlış bir anlaşılma. 64 bit sunucuda derlenmiş libler ile veri tipleri düzenlenmiş ve ekstra değişiklikler ile 64 bit makinada 32 bit sourceyi derleyebilmek özet olarak. Yoksa dediğiniz gibi server 64 client 32 olmaz.
Bu konu 64bit freebsd’de derlemek için. Zaten dosyalar varsayılan halinde 32bit derleniyor.Benim anlamadığım, tek kodla 32 libleri cekebiliriz freebsd sitesinden sonra makefileda 32 bit e göre ayarlayıp derleyebiliriz kodlarda değişiklik yapmanıza gerek yok diye düşünüyorum. Bir yerlerde hata yapmış olabilirmisiniz?
Bu içeriğe erişmek için istenilen ranklardan birine sahip olmanız gerekiyor.Burayı görüntülemek için şu ranklardan birine sahip olmalısınız: Premium Üye, Geliştirici
Bunlar olmadan faydalanamıyor muyuz yani?
Sie können Builds nur mit diesem Leitfaden erhalten. Sie müssen die Datentypen aktualisieren, um das Spiel auszuführenBin gespannt ob es geht
struct RawPacketToCharacterFunc
{
const void * m_buf;
int m_buf_len;
RawPacketToCharacterFunc(const void * buf, int buf_len) : m_buf(buf), m_buf_len(buf_len)
{
}
void operator () (LPCHARACTER c)
{
if (!c->GetDesc())
return;
c->GetDesc()->Packet(m_buf, m_buf_len);
}
};
struct RawPacketToCharacterFunc
{
const void * m_buf;
int32_t m_buf_len;
RawPacketToCharacterFunc(const void * buf, int32_t buf_len) : m_buf(buf), m_buf_len(buf_len)
{
}
void operator () (LPCHARACTER c)
{
if (!c->GetDesc())
return;
c->GetDesc()->Packet(m_buf, m_buf_len);
}
};
ellerine sağlık aynı şekilde bende kodu şöyle revize ettimGüncelleme;
db açılırken proto dosyalarının okunması sırasında bus error hatası ile karşılaştım.
6401 eklentisini görüntüle
Kod:[1] + 2431 bus error (core dumped) ./db
Hatanın kaynağını tespit etmek için ilk önce gdb ile baktım..
6402 eklentisini görüntüle
Daha sonra db/src/ProtoReader.cpp dosyasını açtım ve kodları analiz etmeye başladım. Ekrana mesajlar yazdırdım vs.
C++:static string* StringSplit(string strOrigin, string strTok) { /*fprintf(stdout, "string %s tok %s", strOrigin.c_str(), strTok.c_str()); fprintf(stdout, "cutat %ld - %ld\n", strOrigin.find_first_of(strTok), strOrigin.npos);*/ unsigned int cutAt; //자르는위치 int index = 0; //문자열인덱스 string* strResult = new string[30]; //결과return 할변수 //strTok을찾을때까지반복 while ((cutAt = strOrigin.find_first_of(strTok)) != strOrigin.npos) { if (cutAt > 0) //자르는위치가0보다크면(성공시) { //fprintf(stdout, "sira %d\n", index); strResult[index++] = strOrigin.substr(0, cutAt); //결과배열에추가 } strOrigin = strOrigin.substr(cutAt+1); //원본은자른부분제외한나머지 }
İşaretlediğim alanda (15. satır) dizi sınırını aştığı için bu hatayı verdiğini fark ettim. Burayı kısa süreliğine devredışı bıraktım ve while döngüsünün sonsuz döngüye girdiğini fark ettim. Kaynak kodları 64bit ile build ettiğim içinstrOrigin.find_first_of(strTok)
vestrOrigin.npos
çıktıları long int türünde olduğunu fark ettim. cutAt değişkeni ise uint türünde olduğu için uyuşmazlık sebebi ile karşılaştırma yapamıyordu. Bu yüzden while döngüsü ve koşullar düzgün çalışmıyordu.
C++:unsigned int cutAt; //자르는위치
Yukarıdaki kodu şu şekilde değiştirdim;
C++:unsigned long int cutAt; //자르는위치
Ve başarılı bir şekilde proto dosyalarımı okuyup veritabanına aktardı.
6403 eklentisini görüntüle
Anlayacağınız üzere 64bit ile build almak kolay ancak serveri çalıştırmak için yapılması gereken çok şey var. Zaten konuyu da benim gibi uğraşmak isteyenler için paylaşmıştım. Bu yüzden linki geliştirici rankına sahip kullanıcıların görmesi şekilde ayarlamıştım. 64bit buildi merak edip nereden başlayacağını bilmeyenler içindi bu konu.
static string* StringSplit(string strOrigin, string strTok)
{
unsigned int cutAt; //자르는위치
int index = 0; //문자열인덱스
int counter = 0;
string* strResult = new string[30]; //결과return 할변수
const char *tmp = strOrigin.c_str();
strResult[0].clear();
while (tmp[index])
{
if (tmp[index] == ',')
{
strResult[counter] += '\0';
counter++;
strResult[counter].clear();
}
strResult[counter] += tmp[index];
index++;
}
strResult[counter] += '\0';
/*
//strTok을찾을때까지반복
while ((cutAt = strOrigin.find_first_of(strTok)) != strOrigin.npos)
{
if (cutAt > 0) //자르는위치가0보다크면(성공시)
{
strResult[index++] = strOrigin.substr(0, cutAt); //결과배열에추가
}
strOrigin = strOrigin.substr(cutAt+1); //원본은자른부분제외한나머지
}
if(strOrigin.length() > 0) //원본이아직남았으면
{
strResult[index++] = strOrigin.substr(0, cutAt); //나머지를결과배열에추가
}
for( int i=0;i<index;i++)
{
strResult[i] = trim(strResult[i]);
}
*/
return strResult; //결과return
}
Evet çekenler olmuş. Paylaşılan N2 fileste de 64 bit. Libleri aldım bile. Beni durduran sadece kütüphanelerdei artık onlarda elimde olduğundan Bende 64 e çekiyorum yavaştan. Biraz uzun sürecek gibi meşakatlı bir iş. Programlama tecrübesi olmayanlar hiç bulaşmasın bile.Land Of Heroes Clienti 64bit'e güncellemiş.
Evet çekenler olmuş. Paylaşılan N2 fileste de 64 bit. Libleri aldım bile. Beni durduran sadece kütüphanelerdei artık onlarda elimde olduğundan Bende 64 e çekiyorum yavaştan. Biraz uzun sürecek gibi meşakatlı bir iş. Programlama tecrübesi olmayanlar hiç bulaşmasın bile.
TebriklerUzun ugraslar sonucunda mySQL 8 ve 64bit ile sonunda oyuna giris yapabildim.
KanitLinkleri görebilmek için giriş yap veya kayıt ol.
Uzun ugraslar sonucunda mySQL 8 ve 64bit ile sonunda oyuna giris yapabildim.
KanitLinkleri görebilmek için giriş yap veya kayıt ol.