Server Source Problem

12/20/2021 10:29 Musikta#1
Servus



versuche den Server Source zu complien.

DB ist soweit gar kein Problem.

bei der game kommt am Ende ein Error:

Code:
linking ../game_r44206_32....
/usr/local/bin/ld: cannot find -lcryptopp
collect2: error: ld returned 1 exit status
gmake[1]: *** [Makefile:126: ../game_r44206_32] Error 1
gmake[1]: Leaving directory '/usr/src/Server/game/src'
gmake: *** [Makefile:101: all] Error 2

cryptopp ist aber vorhanden?




Danke!
12/21/2021 15:35 Rainer Wahnsinn#2
Hi,

poste mal die entsprechende Makefile rein.
12/22/2021 07:54 Musikta#3
Quote:
Originally Posted by Rainer Wahnsinn View Post
Hi,

poste mal die entsprechende Makefile rein.
Poste sie dir heut Mittag!


EDIT:
Makefile vom Main Ordner:
Code:
CC = clang
CXX = clang++90

PLATFORM = $(shell file /bin/ls | cut -d' ' -f3 | cut -d'-' -f1)
BSD_VERSION = $(shell uname -v 2>&1 | cut -d' ' -f2 | cut -d'.' -f1)

default: libthecore libpoly libgame liblua libsql libserverkey db game
  [MENTION=374979]echo[/MENTION] "--------------------------------------"
  [MENTION=374979]echo[/MENTION] "Build Done"
  [MENTION=374979]echo[/MENTION] "--------------------------------------"

libserverkey: .
  [MENTION=316314]touch[/MENTION] $@/Depend
	$(MAKE) -C $@ dep
	$(MAKE) -C $@ clean
	$(MAKE) -C $@

liblua: .
	$(MAKE) -C $@ clean
	$(MAKE) -C $@

libsql: .
  [MENTION=316314]touch[/MENTION] $@/Depend
	$(MAKE) -C $@ dep
	$(MAKE) -C $@ clean
	$(MAKE) -C $@

libgame: .
  [MENTION=316314]touch[/MENTION] $@/src/Depend
	$(MAKE) -C $@/src dep
	$(MAKE) -C $@/src clean
	$(MAKE) -C $@/src

libpoly: .
  [MENTION=316314]touch[/MENTION] $@/Depend
	$(MAKE) -C $@ dep
	$(MAKE) -C $@ clean
	$(MAKE) -C $@ 

libthecore: .
  [MENTION=316314]touch[/MENTION] $@/src/Depend
	$(MAKE) -C $@/src dep
	$(MAKE) -C $@/src clean
	$(MAKE) -C $@/src

db: .
  [MENTION=316314]touch[/MENTION] $@/src/Depend
	$(MAKE) -C $@/src dep
	$(MAKE) -C $@/src clean
	# $(MAKE) -C $@/src

game: .
  [MENTION=316314]touch[/MENTION] $@/src/Depend
	$(MAKE) -C $@/src dep
	$(MAKE) -C $@/src clean
	# $(MAKE) -C $@/src

clean:
	$(MAKE) -C liblua clean
	$(MAKE) -C libsql clean
	$(MAKE) -C libgame/src clean
	$(MAKE) -C libpoly clean
	$(MAKE) -C libthecore/src clean
	$(MAKE) -C libserverkey clean
	$(MAKE) -C db/src clean
	$(MAKE) -C game/src clean

all: 
  [MENTION=374979]echo[/MENTION] "--------------------------------------"
  [MENTION=374979]echo[/MENTION] "Full Build Start"
  [MENTION=374979]echo[/MENTION] "--------------------------------------"

	$(MAKE) -C liblua clean
	$(MAKE) -C liblua

  [MENTION=316314]touch[/MENTION] libsql/Depend
	$(MAKE) -C libsql dep
	$(MAKE) -C libsql clean
	$(MAKE) -C libsql

  [MENTION=316314]touch[/MENTION] libgame/src/Depend
	$(MAKE) -C libgame/src dep
	$(MAKE) -C libgame/src clean
	$(MAKE) -C libgame/src

  [MENTION=316314]touch[/MENTION] libpoly/Depend
	$(MAKE) -C libpoly dep
	$(MAKE) -C libpoly clean
	$(MAKE) -C libpoly

  [MENTION=316314]touch[/MENTION] libthecore/src/Depend
	$(MAKE) -C libthecore/src dep
	$(MAKE) -C libthecore/src clean
	$(MAKE) -C libthecore/src

  [MENTION=316314]touch[/MENTION] libserverkey/Depend
	$(MAKE) -C libserverkey dep
	$(MAKE) -C libserverkey clean
	$(MAKE) -C libserverkey

  [MENTION=316314]touch[/MENTION] db/src/Depend
	$(MAKE) -C db/src dep
	$(MAKE) -C db/src clean
	$(MAKE) -C db/src

  [MENTION=316314]touch[/MENTION] game/src/Depend
	$(MAKE) -C game/src dep
	$(MAKE) -C game/src clean
	$(MAKE) -C game/src

  [MENTION=374979]echo[/MENTION] "--------------------------------------"
  [MENTION=374979]echo[/MENTION] "Full Build End"
  [MENTION=374979]echo[/MENTION] "--------------------------------------"

Makefile vom game Ordner:
Code:
MAKE = gmake
CC = g++

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

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)
VERSION = $(shell cat ../REVISION)
REVISION = $(shell echo $$(($(VERSION)+1)))

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

# Standard Setting
LIBS = -pthread -lm -lmd
CFLAGS = -m32 -g -Wall -w -O2 -pipe -fexceptions -D_THREAD_SAFE -DNDEBUG

# Removed -fno-rtti
CFLAGS += -fstack-protector-all -fno-strict-aliasing

# DevIL
INCDIR += -I../../libdevil
LIBDIR += -L../../libdevil
LIBS += -lIL -lpng -ltiff -lmng -llcms -ljpeg

# MySQL
# INCDIR += -I/usr/local/include/mysql
# LIBDIR += -L/usr/local/lib/mysql

ifeq ($(BSD_VERSION), 7)
INCDIR += -I../../libmysql/7.x-5.1.35
LIBDIR += -L../../libmysql/7.x-5.1.35
else
INCDIR += -I../../libmysql/5.x-5.1.35
LIBDIR += -L../../libmysql/5.x-5.1.35
endif

LIBS += -lmysqlclient -lz

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

INCDIR += -I/usr/local/include
LIBDIR += -L/usr/local/lib

# OpenSSL
# INCDIR += -I/usr/include
# LIBS += -lssl
# LIBS += /usr/lib/libssl.a

# Project Library
INCDIR += -I../../liblua/include
LIBDIR += -L../../libthecore/lib -L../../libpoly -L../../libsql -L../../libgame/lib -L../../liblua/lib

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

TARGET = $(BINDIR)/game_r$(REVISION)_$(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_cards.cpp char_manager.cpp\
	char_quickslot.cpp char_resist.cpp char_skill.cpp char_state.cpp char_gem.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 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\
	skill_power.cpp affect.cpp SpeedServer.cpp questlua_speedserver.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 offline_shop.cpp offlineshop_manager.cpp MeleyLair.cpp questlua_meleylair.cpp\
	TempleOchao.cpp questlua_templeochao.cpp\
	GrowthPetSystem.cpp questlua_growthpet.cpp\
	char_mailbox.cpp\
	minigame.cpp minigame_catch_king.cpp CsvReader.cpp\
	battle_pass.cpp switchbot.cpp questlua_pvp.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 $@
 [MENTION=374979]echo[/MENTION] compiling $<

$(OBJDIR)/version.o: version.cpp
	@$(CC) $(CFLAGS) -D__VERSION__="$(REVISION)" -c $< -o $@
 [MENTION=374979]echo[/MENTION] compiling $<

$(OBJDIR)/%.o: %.cpp
 [MENTION=374979]echo[/MENTION] compiling $<
	@$(CC) $(CFLAGS) $(INCDIR) -c $< -o $@

limit_time:
 [MENTION=374979]echo[/MENTION] update limit time
 [MENTION=435108]Python[/MENTION] update_limit_time.py

$(TARGET): $(CPPOBJS) $(COBJS) $(MAINOBJ)
 [MENTION=374979]echo[/MENTION] linking $(TARGET)....
	@$(CC) $(CFLAGS) $(LIBDIR) $(COBJS) $(CPPOBJS) $(MAINOBJ) $(LIBS) -o $(TARGET)
 [MENTION=2156788]expr[/MENTION] $(REVISION) > ../REVISION

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) 2> /dev/null > Depend

sinclude Depend
12/22/2021 18:38 Rainer Wahnsinn#4
Quote:
Originally Posted by Musikta View Post
cryptopp ist aber vorhanden
Und die erstellte Library liegt auch unter Extern/lib/libcryptopp.a?

Achte außerdem auf den richtigen Compiler!
Die Game kompilierst du aktuell mit GCC und in der "Main Makefile" liest sich was von Clang.
Stelle sicher, dass du bei einem Compiler bleibst und Cryptopp auch entsprechend mit diesem kompilierst.

Grüße
12/24/2021 19:28 crewfire1337#5
Hatte das Problem mit einer i386 Maschine auch, Lokal auf einer 64 Bit Maschine konnt ich das problemlos compilen.