Aller au contenu
Top-Metin2.org - Vous êtes à la recherche d'un serveur Metin 2 ? ×
×
×
  • Créer...
  • 0

Erreur compilation game


Thorkildor

Question

Version des files : Sources

Domaine (Base de données, Core, etc.) : Compilation

Votre niveau (débutant, intermédiaire, avancé) : Intermédiaire

 

Bonjour,

 

Je débute en compilation, j'ai donc encore du mal à comprendre le processus.

Tutoriel de compilation suivi : https://fr.metin2.dev/topic/16195-c-compiler-le-game-db-metin2-40250/

Je suis sous FreeBSD 10.3 en dédié, j'ai installé les packages gmake, makedepend, subversion, devil et gcc48 avec la commande pkg install, et tout s'est correctement installé.

Lorsque je fait la commande gmake, j'ai ces lignes qui s'affichent :

root@ns527966:/usr/src/mainline/Srcs/Server/game/src # gmake

compile BattleArena.cpp

g++: warning: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead

In file included from debug_allocator.h:4:0,

                 from stdafx.h:7,

                 from BattleArena.cpp:1:

/usr/local/lib/gcc48/include/c++/cstdlib:178:10: error: expected unqualified-id before '__int128'

   inline __int128

          ^

In file included from ../../../Extern/include/boost/limits.hpp:19:0,

                 from ../../../Extern/include/boost/functional/hash/detail/limits.hpp:16,

                 from ../../../Extern/include/boost/functional/hash/detail/hash_float.hpp:15,

                 from ../../../Extern/include/boost/functional/hash/hash.hpp:15,

                 from ../../../Extern/include/boost/functional/hash.hpp:6,

                 from ../../../Extern/include/boost/unordered/unordered_map.hpp:17,

                 from ../../../Extern/include/boost/unordered_map.hpp:16,

                 from char.h:4,

                 from BattleArena.cpp:6:

/usr/local/lib/gcc48/include/c++/limits:1405:35: error: template argument 1 is invalid

     struct numeric_limits<__int128>

                                   ^

/usr/local/lib/gcc48/include/c++/limits:1479:44: error: template argument 1 is invalid

     struct numeric_limits

                                            ^

makefile:127: recipe for target 'OBJDIR/BattleArena.o' failed

gmake: *** [OBJDIR/BattleArena.o] Error 1

root@ns527966:/usr/src/mainline/Srcs/Server/game/src #

 

Je note l'erreur

makefile:127: recipe for target 'OBJDIR/BattleArena.o' failed

gmake: *** [OBJDIR/BattleArena.o] Error 1

 

makefile

J'ai mis en gras la ligne 127, la tabulation est faite.

 

ATFORM = $(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)

P4_VERSION = 40250

 

CC = g++

 

INCDIR =

LIBDIR =

BINDIR = ..

OBJDIR = OBJDIR

$(shell if [ ! -d $(OBJDIR) ]; then mkdir $(OBJDIR); fi)

 

# Standard Setting

LIBS = -pthread -lm -lmd

# Removed -fno-rtti

CFLAGS = -g -Wall -O2 -m32 -pipe -fexceptions -D_THREAD_SAFE -DNDEBUG # -D_USE_SERVER_KEY_

 

ifeq ($(GCC_VERSION), 4)

CFLAGS += -mtune=i686 -fstack-protector-all

else

CFLAGS += -mcpu=i686

endif

 

# boost

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

 

# DevIL

INCDIR += -I../../libdevil

LIBDIR += -L../../libdevil

LIBS += -lIL -lpng -ltiff -lmng -llcms -ljpeg

 

# MySQL

#ifeq ($(BSD_VERSION), 7)

INCDIR += -I../../libmysql

LIBDIR += -L../../libmysql

#else

#INCDIR += -I../../libmysql

#LIBDIR += -L../../libmysql

#endif

 

LIBS += -lmysqlclient -L/usr/local/lib/mysql -lz

 

# Miscellaneous external libraries

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

LIBDIR += -L../../../Extern/lib

LIBS += -lcryptopp -lgtest

 

# HackShield

INCDIR += -I../../libhackshield/include

LIBDIR += -L../../libhackshield/lib

LIBS += -lanticpxsvr

 

# XTrap

INCDIR += -I../../libxtrap/include

 

# openssl

#INCDIR += -I/usr/include

#LIBS += -lssl

#LIBS += /usr/lib/libssl.a

 

# Project Library

INCDIR += -I../../liblua/include

INCDIR += -I/usr/local/include

INCDIR += -L/usr/local/lib/mysql

INCDIR += -I../../libserverkey

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

LIBDIR += -L/usr/local/lib

LIBS += -lthecore -lpoly -llua -llualib -lsql -lgame -lserverkey

USE_STACKTRACE = 0

ifeq ($(USE_STACKTRACE), 1)

LIBS += /usr/local/lib/libexecinfo.a

endif

 

TARGET  = $(BINDIR)/game_r$(P4_VERSION)_$(PLATFORM)

 

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 check_server.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

 

default: $(TARGET)

 

$(OBJDIR)/minilzo.o: minilzo.c

    @$(CC) $(CFLAGS) $(INCDIR) -c $< -o $@

    @echo compile $<

 

$(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)/%.o: %.cpp

    @echo compile $<

    @$(CC) $(CFLAGS) $(INCDIR) -c $< -o $@

 

limit_time:

    @echo update limit time

    @python update_limit_time.py

 

$(TARGET): $(CPPOBJS) $(COBJS) $(MAINOBJ)

    @echo linking $(TARGET)....

    @$(CC) $(CFLAGS) $(LIBDIR) $(COBJS) $(CPPOBJS) $(MAINOBJ) $(LIBS) -o $(TARGET)

 

clean:

    @rm -f $(COBJS) $(CPPOBJS)

    @rm -f $(BINDIR)/game_r* $(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) $(TESTCPP) 2> /dev/null > Depend

 

sinclude Depend

 

 

 

 

En postant ma demande d'aide, j'affirme avoir lu et accepté le règlement des demandes d'aides.

 

Merci d'avance pour vos réponses, en espérant avoir une réponse.

  • Love 1
Lien vers le commentaire
Partager sur d’autres sites

13 réponses à cette question

Messages recommandés

  • 0
  • Funkiest

Yo,

 

Déjà t'uses gcc48, donc ça doit être la version native de ton FreeBSD car t'as tout simplement indiqué au makefile d'utiliser la version native

Il t'indique de remplacer :

: '-mcpu=' is deprecated; use '-mtune=' or '-march=' instead

-mcpu par -mtune ou -march dans ton makefile, c'est un warning mais je pense que ça corrigera le tout, car c'est des erreurs relatives à gcc48

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Merci galet pour la réponse, mais la deuxième erreur est toujours présente, je met en gras ce qui me paraît être des erreurs

 

root@ns527966:/usr/src/mainline/Srcs/Server/game/src # gmake

compile BattleArena.cpp

In file included from debug_allocator.h:4:0,

                from stdafx.h:7,

                from BattleArena.cpp:1:

/usr/local/lib/gcc48/include/c++/cstdlib:178:10: error: expected unqualified-id before '__int128'

  inline __int128

         ^

In file included from ../../../Extern/include/boost/limits.hpp:19:0,

                from ../../../Extern/include/boost/functional/hash/detail/limits.hpp:16,

                from ../../../Extern/include/boost/functional/hash/detail/hash_float.hpp:15,

                from ../../../Extern/include/boost/functional/hash/hash.hpp:15,

                from ../../../Extern/include/boost/functional/hash.hpp:6,

                from ../../../Extern/include/boost/unordered/unordered_map.hpp:17,

                from ../../../Extern/include/boost/unordered_map.hpp:16,

                from char.h:4,

                from BattleArena.cpp:6:

/usr/local/lib/gcc48/include/c++/limits:1405:35: error: template argument 1 is invalid

    struct numeric_limits<__int128>

                                  ^

/usr/local/lib/gcc48/include/c++/limits:1479:44: error: template argument 1 is invalid

    struct numeric_limits

                                           ^

makefile:127: recipe for target 'OBJDIR/BattleArena.o' failed

gmake: *** [OBJDIR/BattleArena.o] Error 1

root@ns527966:/usr/src/mainline/Srcs/Server/game/src #

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Essaye en gcc49 juste pour voir.

Les commandes à taper sur putty:

portsnap fetch extract

 

#Quand la mise à jour des ports sera terminée:

cd /usr/ports/lang/gcc49
make deinstall clean

 

#Quand la désinstallation sera terminée:

pkg install gcc49

 

N'oublie pas de modifier dans ton Makefile (dans /usr/src/mainline/Srcs/Server/game/src):

CC = g++48

par:

CC = g++49

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Merci Doberman,

 

J'ai donc entré les commandes pkg delete gcc48 et pkg install gcc49

 

Il ne reste plus que l'erreur venant de BattleArena.o (fichier non modifié) et je viens de voir (en rouge) une erreur que je n'avaias pas vu avant, qui dit que cstdlib n'existe pas, je vais donc dans /usr/local/lib/gcc49/include/c++ et le fichier est présent avec chmod 644, j'essaye en 744, aucun changement.

 

 

root@ns527966:/usr/src/mainline/Srcs/Server/game/src # gmake

compile BattleArena.cpp

In file included from stdafx.h:7:0,

                 from BattleArena.cpp:1:

debug_allocator.h:4:19: fatal error: cstdlib: No such file or directory

 #include

                   ^

compilation terminated.

makefile:127: recipe for target 'OBJDIR/BattleArena.o' failed

gmake: *** [OBJDIR/BattleArena.o] Error 1

root@ns527966:/usr/src/mainline/Srcs/Server/game/src #

 

 

 

Ma question est donc où devrait être le fichier cstdlib? Il n'est pas noté dans le makefile.

 

 

Merci d'avance pour vos réponses

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Retraité

J'ai l'impression que c'est un peu le bordel sur ta machine, tu devrais tout désinstaller et tout refaire un par un ... Ou reprendre la VM avec tout le nécessaire installé.

Mais je pense (à première vu) que ça vient d'un directory. Mais mieux vaut tout refaire, je pense ...

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Merci Calypso, j'ai déjà essayé plusieurs fois de refaire, c'est long et le résultat est toujours le même, mais je vais reessayer encore une fois en installant les pkg gmake, makedepend, subversion, devil et gcc49... La liste est-elle complète?

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Il y a un tutoriel de @Galet sur la préparation d'une machine, je crois que le sujet s'appelle "Environnement complet".

 

Désinstalle tout ce que tu as installé un par un mais pas avec "pkg remove", exemple:

au lieu de:

pkg delete gcc48

fais:

cd /usr/ports/lang/gcc48
make deinstall clean

 

Peut-être que ça ne change rien mais pour être sûr mieux vaut faire comme ça.

Tu sais où se trouve "cstdlib" ?

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Merci pour vos réponses.

 

Cstdlib se dans /usr/local/lib/gcc49/include/c++ j'ai déjà eu une erreur pour Cstdlib la première fois que j'ai essayé de compiler.

 

J'ai déjà essayé de suivre le tutoriel de galet, les installations renvoyaient à chaque fois des erreurs, je suis sous FreeBSD 10.3 et son tutoriel est prévu pour FreeBSD 9.3

 

EDIT :

 

J'ai réinitialisé, installé les packages, le dossier /usr/include/c++/4.2 étant sans fichier, j'ai pris les fichiers présents dans le VM des files de la TeamFE 1.0, les erreurs sont toujours là, je me demande si c'est parce que j'ai mis les fichiers d'une version 9.2 alors que je suis en 10.3, où trouver les fichiers de /usr/include/c++/4.2 ?

 

root@ns527966:/usr/src/mainline/Srcs/Server/game/src # gmake

compile BattleArena.cpp

In file included from debug_allocator.h:4:0,

from stdafx.h:7,

from BattleArena.cpp:1:

/usr/local/lib/gcc49/include/c++/cstdlib:178:10: error: expected unqualified-id before '__int128'

inline __int128

^

In file included from ../../../Extern/include/boost/limits.hpp:19:0,

from ../../../Extern/include/boost/functional/hash/detail/limits.hpp:16,

from ../../../Extern/include/boost/functional/hash/detail/hash_float.hpp:15,

from ../../../Extern/include/boost/functional/hash/hash.hpp:15,

from ../../../Extern/include/boost/functional/hash.hpp:6,

from ../../../Extern/include/boost/unordered/unordered_map.hpp:17,

from ../../../Extern/include/boost/unordered_map.hpp:16,

from char.h:4,

from BattleArena.cpp:6:

/usr/local/lib/gcc49/include/c++/limits:1405:35: error: template argument 1 is invalid

struct numeric_limits<__int128>

^

/usr/local/lib/gcc49/include/c++/limits:1479:44: error: template argument 1 is invalid

struct numeric_limits

^

Makefile:127: recipe for target 'OBJDIR/BattleArena.o' failed

gmake: *** [OBJDIR/BattleArena.o] Error 1

root@ns527966:/usr/src/mainline/Srcs/Server/game/src #

 

Merci d'avance pour vos réponses.

 

EDIT2 : Je vais continuer en serveur local pour compiler, ce qui me gêne c'est qu'il soit en freebsd9.2 alors que le serveur est en 10.3... Merci tout de même pour vos réponses.

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant


Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.