[SOLVED]Probleme Beim Linken Unter Linux

ich habe mir eine neue Klasse erstellt und eingebunden

Mein Windows Compiler Link die neue klasse Ohne Probleme.

nur mein Linux Compiler meckert beim Linken


../scripts/libscripts.a(gunship_battle.cpp.o): In function `gunship_battel_event::OnGossipSelect(Player*, Creature*, unsigned int, unsigned int)':

gunship_battle.cpp:(.text._ZN20gunship_battel_event14OnGossipSelectEP6PlayerP8Creaturejj[gunship_battel_event::OnGossipSelect(Player*, Creature*, unsigned int, unsigned int)]+0x63): undefined reference to `GunshipTransport::GunshipTransport()'

gunship_battle.cpp:(.text._ZN20gunship_battel_event14OnGossipSelectEP6PlayerP8Creaturejj[gunship_battel_event::OnGossipSelect(Player*, Creature*, unsigned int, unsigned int)]+0x146): undefined reference to `GunshipTransport::LoadBattleGunship(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, unsigned int, unsigned int)'

gunship_battle.cpp:(.text._ZN20gunship_battel_event14OnGossipSelectEP6PlayerP8Creaturejj[gunship_battel_event::OnGossipSelect(Player*, Creature*, unsigned int, unsigned int)]+0x18c): undefined reference to `GunshipTransport::GoRedBattleGunship()'

collect2: ld returned 1 exit status

make[2]: *** [src/server/worldserver/worldserver] Fehler 1

make[1]: *** [src/server/worldserver/CMakeFiles/worldserver.dir/all] Fehler 2

make: *** [all] Fehler 2

GunshipTransport.h


#ifndef GunshipTransport_H

#define GunshipTransport_H


class GunshipTransport

{

public:

friend class ACE_Singleton<GunshipTransport, ACE_Null_Mutex>;


	GunshipTransport();

	~GunshipTransport();


  void LoadBattleGunship(std::string name, uint32 entry, uint32 period);

  void GoRedBattleGunship();

  void RemoveBattleGunship();

private:

  Map* tMap;

  Transport* skybreaker;

  Player* pPlayer;


};

#define sGunshipTransport (*ACE_Singleton<GunshipTransport, ACE_Null_Mutex>::instance())

#endif

Auszug aus

gunship_battle.cpp


#include "ScriptPCH.h"

#include "GunshipTransport.h"


  bool OnGossipSelect(Player* player, Creature* creature, uint32 /*uiSender*/, uint32 uiAction)

   {


	  player->PlayerTalkClass->ClearMenus();

	 GunshipTransport* gunship;

	 uint32 entry;

	  uint32 period;

	 std::string name;


switch (uiAction)

   {


	case GOSSIP_ACTION_INFO_DEF +1:


	 name = "test";

	 entry = 201812;

							period = 76000;


		   gunship->LoadBattleGunship(name, entry, period);

	 player->CLOSE_GOSSIP_MENU();

	 break;

..........................

cmake neu ausgeführt? Mal ein make -clean gemacht?

cmake führe ich imer mit aus

make clean habe ich ausgeführt bringt aber nichts.

Hast du mal auf die Groß- und Kleinschreibung der Dateinamen an den unterschiedlichen Stellen gedacht? Wenn ich mich recht entsinne, ist Windows die relativ egal, wohingegen Linux zwischen Groß- und Kleinschreibung unterscheidet.

ja das habe ich beachtet da das Linux sehr wichtig ist.

Erstell die Datei mal neu und kopier den Inhalt darein. Hatte das auch mal.

habe die Dateien mit Notepad++ neu erstellt. Das bringt leider auch nicht.

kann geschlossen werden… das Problem habe ich gelöst

Hin und wieder wäre es ganz gut, dann bei sowas auch den Lösungsweg zu zeigen, damit auch andere daraus lernen können.

die Lösung weise ich leider auch nicht ganz genau habe die Datei und Klassen Namen umbenannt mehr nicht.

Alles klar, dann nehmen wir das mal so hin.

— Canned message start

It appears the issue in the original post was solved, so this thread shall be closed. Should you encounter any other difficulties, please open a new thread.

— Canned message end —