Jump to content
×
×
  • Create New...
  • 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://funky-emu.net/showthread.php?tid=46277

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 :

[email protected]:/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

[email protected]:/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 [email protected]

    @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 [email protected]

    @echo compile $<

 

$(OBJDIR)/%.o: %.cpp

    @echo compile $<

    @$(CC) $(CFLAGS) $(INCDIR) -c $< -o [email protected]

 

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.

  • J'adore 1
Link to comment

13 answers to this question

Recommended Posts

  • 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

Link to comment
  • 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

 

[email protected]:/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

[email protected]:/usr/src/mainline/Srcs/Server/game/src #

Link to comment
  • 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

Link to comment
  • 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.

 

 

[email protected]:/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

[email protected]:/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

Link to comment
  • 0
  • Administrateur

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

Link to comment
  • 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?

Link to comment
  • 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" ?

Link to comment
  • 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 ?

 

[email protected]:/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

[email protected]:/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.

Link to comment


  • Flux d'Activité

    1. 38

      Rodnia.net | PVM | International | The Great Conqueror |

    2. 0

      [JAVA] Starloco

    3. 0

      Recherche CMS arkalys 2021

    4. 0

      AresiaCMS

    5. 62

      [CMS] Acamar Cms

    6. 3

      Éditeur Item 2.43 à 2.53

  • Recently Browsing

    • No registered users viewing this page.

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.