Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

11.12.2010, 20:07

Fehler beim erstellen einer Ogre Anwendung mit dem OgreAppWizard

Hallo Spieleprogrammierer.de,

ich hab wie in der SettingUpYourApplication steht mein Code::Blocks eingerichtet und mit dem AppWizard eine App in C::B erstellt beim Compiliern bekomm ich ab nur Linkerfehler:


BaseApplication.cpp|36|undefined reference to `Ogre::StringUtil::BLANK'|
BaseApplication.cpp|36|undefined reference to `Ogre::StringUtil::BLANK'|
BaseApplication.cpp|36|undefined reference to `Ogre::StringUtil::BLANK'|
BaseApplication.cpp|46|undefined reference to `Ogre::WindowEventUtilities::removeWindowEventListener(Ogre::RenderWindow*, Ogre::WindowEventListener*)'|

BaseApplication.cpp|48|undefined reference to `Ogre::Root::~Root()'|
BaseApplication.cpp|46|undefined reference to `Ogre::WindowEventUtilities::removeWindowEventListener(Ogre::RenderWindow*, Ogre::WindowEventListener*)'|

BaseApplication.cpp|48|undefined reference to `Ogre::Root::~Root()'|
BaseApplication.cpp|46|undefined reference to `Ogre::WindowEventUtilities::removeWindowEventListener(Ogre::RenderWindow*, Ogre::WindowEventListener*)'|

BaseApplication.cpp|48|undefined reference to `Ogre::Root::~Root()'|
BaseApplication.cpp|57|undefined reference to `Ogre::Root::showConfigDialog()'|

BaseApplication.cpp|61|undefined reference to `Ogre::StringUtil::BLANK'|
BaseApplication.cpp|61|undefined reference to `Ogre::Root::initialise(bool, std::string const&, std::string const&)'|
BaseApplication.cpp|74|undefined reference to `Ogre::StringUtil::BLANK'|

BaseApplication.cpp|74|undefined reference to `Ogre::Root::createSceneManager(unsigned short, std::string const&)'|
BaseApplication.cpp|83|undefined reference to `Ogre::Camera::setPosition(Ogre::Vector3 const&)'|

BaseApplication.cpp|85|undefined reference to `Ogre::Camera::lookAt(Ogre::Vector3 const&)'|
BaseApplication.cpp|93|undefined reference to `Ogre::LogManager::getSingletonPtr()'|

BaseApplication.cpp|93|undefined reference to `Ogre::LogManager::logMessage(std::string const&, Ogre::LogMessageLevel, bool)'|
BaseApplication.cpp|102|undefined reference to `OIS::InputManager::createInputSystem(std::multimap<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >&)'|
BaseApplication.cpp|104|undefined reference to `OIS::InputManager::createInputObject(OIS::Type, bool, std::string const&)'|
BaseApplication.cpp|105|undefined reference to `OIS::InputManager::createInputObject(OIS::Type, bool, std::string const&)'|
BaseApplication.cpp|114|undefined reference to `Ogre::WindowEventUtilities::addWindowEventListener(Ogre::RenderWindow*, Ogre::WindowEventListener*)'|
BaseApplication.cpp|140|undefined reference to `Ogre::Root::addFrameListener(Ogre::FrameListener*)'|
BaseApplication.cpp|151|undefined reference to `Ogre::Viewport::setBackgroundColour(Ogre::ColourValue const&)'|

BaseApplication.cpp|154|undefined reference to `Ogre::Viewport::getActualWidth() const'|
BaseApplication.cpp|154|undefined reference to `Ogre::Viewport::getActualHeight() const'|
BaseApplication.cpp|161|undefined reference to `Ogre::ConfigFile::ConfigFile()'|

BaseApplication.cpp|162|undefined reference to `Ogre::ConfigFile::load(std::string const&, std::string const&, bool)'|
BaseApplication.cpp|165|undefined reference to `Ogre::ConfigFile::getSectionIterator()'|
...
||=== Build finished: 250 errors, 0 warnings ===|

Wie ihr seht sind das maßig Linkerfehler, aber wie kann ich diese beseitigen.
MfG Ninjasturm

----------------------------
System: Windows 7 x64
IDE: Visual Studio 2010 Ultimate
Engine: Ogre3D


Favorisierte Programmiersprache: C++
Sonstige Programmiersprachen: AutoIT, PHP, Javascript
Sonstige Auszeichnungsprachen: HTML, CSS
---------------------------

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

2

11.12.2010, 20:14

Linkfehler heisst er findet deine Libs nicht. schaue nach, ob die pfade richtig eingetragen sind, ansonsten stelle sie in den projekteinstellungen nochmal per hand ein.

3

11.12.2010, 20:41

Ne funktioniert selbst wenn ich Absolute Pfade anstatt ($OGRE_HOME)\... benutze nicht.

Ich linke:

C:\Ogre\lib\release\OgreMain.lib
C:\Ogre\lib\release\OIS.lib
C:\Ogre\lib\release\OgrePaging.lib
C:\Ogre\lib\release\OgreProperty.lib
C:\Ogre\lib\release\OgreRTShaderSystem.lib
C:\Ogre\lib\release\OgreTerrain.lib

Brauch ich sonst noch irgendetwas?
MfG Ninjasturm

----------------------------
System: Windows 7 x64
IDE: Visual Studio 2010 Ultimate
Engine: Ogre3D


Favorisierte Programmiersprache: C++
Sonstige Programmiersprachen: AutoIT, PHP, Javascript
Sonstige Auszeichnungsprachen: HTML, CSS
---------------------------

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

4

11.12.2010, 23:15

Also eigentlich sollte das reichen, bei mir reicht schon OgreMain, OgreTerrain und OIS...

Möglicherweise stimmt was mit den .libs nicht? Selbst compiled? sicher, dass sie auch wirklich korrekt gelinkt werden? In OgreMain sollten eig. alle fehlenden methoden enthalten sein.

Hast du mal mit den Links und ohne die Dateigröße verglichen?

5

11.12.2010, 23:44

Ich hab die Datein aus dem Ogre SDK.
Hier mal meine ganzen Einstellungen:


Compiler Settings: Other:

-mthreads
-fmessage-length=0
-fexceptions
-fident
Compiler Settings: defines:

WIN32
_WINDOWS
_DEBUG
Linker settings: Other Linker Options:

-Wl,--enable-auto-image-base
-Wl,--add-stdcall-alias
-Wl,--enable-auto-importSearch directions: Compiler:
C:\Ogre\include
C:\Ogre\include\Ogre
C:\Ogre\OIS
C:\boost_1_42
Search directions: Linker:
C:\Ogre\bin\release
MfG Ninjasturm

----------------------------
System: Windows 7 x64
IDE: Visual Studio 2010 Ultimate
Engine: Ogre3D


Favorisierte Programmiersprache: C++
Sonstige Programmiersprachen: AutoIT, PHP, Javascript
Sonstige Auszeichnungsprachen: HTML, CSS
---------------------------

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

6

12.12.2010, 06:19

Hast du es schonmal im Release Modus versucht? Ich weiß leider nicht genau, ob es möglich ist, dass der linker die prozeduren nicht finden kann, weil er im debugmode läuft, die libs aber release compiled wurden. Möglicherweise sucht er dann anders (falsch) danach...

Ansonsten würde ich es mal mit den .dlls versuchen und dynamisch linken.

7

12.12.2010, 10:47

also wenn du im Debugmodus bist, solltest du nicht OgreMain.lib, sondern OgreMain_d.lib einbinden (und bei den anderen Libs auch entsprechend)

8

12.12.2010, 13:06

Hab jetzt mal alle Libs auf Debug umgestellt funktioniert aber immer noch nicht.
Wie binde ich DLL's dynamisch ein?
MfG Ninjasturm

----------------------------
System: Windows 7 x64
IDE: Visual Studio 2010 Ultimate
Engine: Ogre3D


Favorisierte Programmiersprache: C++
Sonstige Programmiersprachen: AutoIT, PHP, Javascript
Sonstige Auszeichnungsprachen: HTML, CSS
---------------------------

n0_0ne

1x Contest-Sieger

  • Private Nachricht senden

9

12.12.2010, 22:33

Ich kenn mich mit codeblocks jetzt nicht so toll aus, wahrscheinlich kannst du da einfach irgendwo die .dlls angeben. Ansonsten musst du dem Linker mitteilen, in welchen verzeichnissen er nachsehen soll (-L<path>, als kommandozeilenversion, wenns nicht anders geht) und kannst ihm dann als option -l<dllname_ohne_.dll> (kleines L vorne) sagen, welche bibliotheken er dynamisch linken soll. Die .dlls musst du dann aber mitliefern, sie werden nicht mehr statisch in die .exe eingebunden.

10

13.12.2010, 13:04

Ich glaub ich versuch das mal mit VC++, weil selbst wenn ich die DLL's hinzufügen kommen immer noch die selben Fehler.
MfG Ninjasturm

----------------------------
System: Windows 7 x64
IDE: Visual Studio 2010 Ultimate
Engine: Ogre3D


Favorisierte Programmiersprache: C++
Sonstige Programmiersprachen: AutoIT, PHP, Javascript
Sonstige Auszeichnungsprachen: HTML, CSS
---------------------------

Werbeanzeige

Ähnliche Themen