Latest Posts

Topic: Problem beim bauen von Widelands

Shazman

Topic Opener
Joined: 2011-07-13, 21:01
Posts: 4
Ranking
Just found this site
Posted at: 2011-07-13, 21:36

An der folgenden Stelle komm ich nicht weiter:

===> LD ../../native-release/widelands.exe
../../native-release/wui/mapview.o:mapview.cc:(.text+0x3e0): undefined reference to `GameView::rendermap(Widelands::Editor_Game_Base const&, Widelands::Player const&, Point)'
../../native-release/wui/mapview.o:mapview.cc:(.text+0x40b): undefined reference to `GameView::rendermap(Widelands::Editor_Game_Base const&, Point)'
../../native-release/wui/minimap.o:minimap.cc:(.text+0x2a7): undefined reference to `GameView::renderminimap(Widelands::Editor_Game_Base const&, Widelands::Player const*, Point, unsigned int)'
../../native-release/graphic/graphic.o:graphic.cc:(.text+0x549): undefined reference to `SurfaceSDL::set_isscreen(bool)'
../../native-release/graphic/graphic.o:graphic.cc:(.text+0xad1): undefined reference to `AnimationGfx::~AnimationGfx()'
../../native-release/graphic/graphic.o:graphic.cc:(.text+0x2a1c): undefined reference to `AnimationGfx::AnimationGfx(AnimationData const*)'
../../native-release/graphic/graphic.o:graphic.cc:(.text$_ZN10SurfaceSDLC1ER11SDL_Surface+0x16): undefined reference to `vtable for SurfaceSDL'
../../native-release/graphic/graphic.o:graphic.cc:(.text$_ZN10SurfaceSDLC1ER11SDL_Surface+0x20): undefined reference to `vtable for SurfaceSDL'
../../native-release/graphic/graphic.o:graphic.cc:(.text$_ZN10SurfaceSDLC1ER11SDL_Surface+0x2a): undefined reference to `vtable for SurfaceSDL'
../../native-release/graphic/rendertarget.o:rendertarget.cc:(.text$_ZN12AnimationGfx9get_frameEjhPK8RGBColor+0x64): undefined reference to `AnimationGfx::encode(unsigned char, RGBColor const*)'
collect2: ld returned 1 exit status
make: *** Error 1


Top Quote
Nasenbaer
Avatar
Joined: 2009-02-21, 18:17
Posts: 826
Ranking
One Elder of Players
Location: Germany
Posted at: 2011-07-13, 22:19

Moin Shazman,

Ich schau jetzt mal in die Glaskugel face-wink.png (Was ein Zaunpfeilerwink für "gib das nächste Mal bitte mehr Information an" ist. face-smile.png )

Für mich sieht das so aus, als ob du versucht hast unter irgendeinem Windows mit MinGW + MSys Widelands zu kompilieren. Wahrscheinlich hast du dabei das Makefile unter ./build/win32/mingw verwendet. Falls das der Fall ist, ist wahrscheinlich einfach das Makefile nicht mehr up to date, da, nachdem wir zu "cmake" gewechselt haben, sich wohl keiner mehr um das Makefile gekümmert hat. Falls das nicht der Fall ist, ist höchstwahrscheinlich irgendwas mit der Bau-Umgebung nicht in Ordnung - das kann in dem Fall ziemlich viel sein - von "instablier Kompiler" über inkompatible Bibliotheken bishin zu verlaltete Header - in dem Fall brauchen wir dringend informationen über das System auf dem du Baust und darüber wie du baust.

Falls du das fertige Makefile benutzt, kann ich auch noch mal empfehlen, die andere Möglichkeit mit cmake auszuprobieren -> BuildingWidelandsUnderWindows

Liebe Grüße Peter


Top Quote
Shazman

Topic Opener
Joined: 2011-07-13, 21:01
Posts: 4
Ranking
Just found this site
Posted at: 2011-07-14, 20:45

Nabend,

ist ja super wie schnell hier geantwortet wird! Deine Glaskugel solltest du auf jeden Fall behalten, die ist doch ganz gut ;-). Ich hab mich an die Anleitung (auf die du auch verlinkt hast) gehalten und bin halt bei "Compiling the source using Makefile" hängen geblieben. Also somit nutze ich mingw unter Windows7 und die erwähnten Pakete (boost, expat, gettext, ggz-base-libs, glew, libgettextpo, libiconv, libintl, lpng, lua, sdl, sdl_gfx, sdl_image, sdl_mixer, sdl_net, sdl_ttf, zlib).

Jetzt hab ich es mal mit cmake (2.8.4) versucht. Leider komm ich auch hier nicht weiter, da Boost nicht gefunden wird. Zuvor hab ich das 3rdParty source bundle via ./buildmingw.sh gebaut (Entgegen der Anleitung ist es ja doch ganz schön gesprächig face-wink.png ).

Ich hab das boost-Verzeichnis (aus boost_minimal vom 3rdparty source bundle) in mein ../mingw/include/ Verzeichnis kopiert. Hier sollte es cmake doch bekannt sein, oder?

Zumindest bekomme ich folgende Fehlermeldung:

$ cmake -G "MSYS Makefiles" -DCMAKE_PREFIX_PATH=/usr/local/ -DCMAKE_INCLUDE_PATH=/usr/local/include/SDL/ -DCMAKE_BUILD_TYPE=Release ../ -- Disabled Unit Tests CMake Error at c:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:1128 (message): Unable to find the requested Boost libraries.

Unable to find the Boost header files. Please set BOOST_ROOT to the root directory containing Boost or BOOST_INCLUDEDIR to the directory containing Boost's headers. Call Stack (most recent call first): CMakeLists.txt:139 (find_package)

-- Using compiler flags: -O2 -DNDEBUG -- Found GGZ_Core: C:/Software/MinGW/msys/1.0/local/lib/libggzmod.dll.a;C:/Software/MinGW/msys/1.0/local/lib/libggzcore.dll.a;C:Software/MinGW/msys/1.0/local/lib/libggz.dll.a CMake Error at c:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:91 (MESSAGE): Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR) Call Stack (most recent call first): c:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindPackageHandleStandardArgs.cmake:252 (_FPHSA_FAILURE_MESSAGE) c:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindPNG.cmake:59 (find_package_handle_standard_args) CMakeLists.txt:348 (find_package)

-- Configuring incomplete, errors occurred!

Vielen Dank für die Hilfe,

Gruß Shazman


Top Quote
Nasenbaer
Avatar
Joined: 2009-02-21, 18:17
Posts: 826
Ranking
One Elder of Players
Location: Germany
Posted at: 2011-07-14, 21:50

Moin nochmal :),

Shazman wrote: Unable to find the Boost header files. Please set BOOST_ROOT to the root directory containing Boost or BOOST_INCLUDEDIR to the directory containing Boost's headers.

Und genau das musst du machen. Für das Kompilieren brauchst du eigentlich nur die Header (.h) Dateien, du musst also Boost gar nicht kompilieren. Was viel wichtiger ist (was eigentlich automatisch passieren sollte) ist das BOOST_ROOT bzw. BOOST_INCLUDEDIR gesetzt werden.

Einfach mal angenommen es gibt den Ordner C:\blablabla\boost mit dem Boost include Unterverzeichnis, dann versuch mal cmake wie folgt zu starten:

cmake -D BOOST_ROOT=c:\blablabla\boost

oder halt alternativ mit ... BOOST_INCLUDEDIR=c:\da\wo\header\von\boost\liegen

Ich drück dir die Daumen face-smile.png

Edited: 2011-07-14, 21:51

Top Quote
Shazman

Topic Opener
Joined: 2011-07-13, 21:01
Posts: 4
Ranking
Just found this site
Posted at: 2011-07-16, 21:14

Nabend,

es fehlten zwar noch ein paar andere Verzeichnisse, aber letztendlich lies es sich bauen. face-smile.png

Danke nochmal


Top Quote
Shazman

Topic Opener
Joined: 2011-07-13, 21:01
Posts: 4
Ranking
Just found this site
Posted at: 2011-07-18, 21:28

... weiter gehts,

nachdem sich nun widelands bauen lässt, wollte ich eclipse als IDE nutzen. Leider komme ich auch hier nicht weiter. Der Befehl

cmake -G"Eclipse CDT4 - MinGW Makefiles" -D CMAKE_BUILD_TYPE=Debug ../src

liefert mir zurück, dass die beiden CMakeLists.txt Dateien im widelands-source Verzeichnis nicht mit der im widelands-source/src Verzeichnis zusammenpasst und ich soll cmake mit einem andern Quellverzeichnis ausführen....

Ich hoffe mir kann wieder jemand dabei auf die Sprünge helfen widelands als eclipse-projekt einzubinden. Ich denk mal nicht, dass ich der erste bin der das vor hat :-).

Viele Grüße

Shazman


Top Quote
Nasenbaer
Avatar
Joined: 2009-02-21, 18:17
Posts: 826
Ranking
One Elder of Players
Location: Germany
Posted at: 2011-07-18, 21:54

Moin Shazman,

Shazman wrote: Ich hoffe mir kann wieder jemand dabei auf die Sprünge helfen widelands als eclipse-projekt einzubinden. Ich denk mal nicht, dass ich der erste bin der das vor hat .

Zumindest soweit ich weiß schon ;). Ich wusste nicht mal, dass man mit cmake eclipse Projekte erstellen kann - aber gut, ich habe mich auch nie wirklich damit auseinander gesetzt. Wäre aber auf jeden Fall interessant zu wissen, ob du es zum Laufen bekommst (mit etwas glück meldet sich ja noch jemand, der da mehr Ahnung von hat, als ich face-smile.png ) und wie gut das dann mit Eclipse funktioniert.

Liebe Grüße Peter


Top Quote
Venatrix
Avatar
Joined: 2010-10-05, 20:31
Posts: 447
Ranking
Tribe Member
Location: Germany
Posted at: 2011-07-21, 11:28

Ich persönlich habe zwar keine Ahnung, aber mein Mann nutzt auch Eclipse für seine Arbeiten. Die Frage ist: Warum willst du Widelands als Eclipse-Projekt einbinden? Das ist doch gar nicht nötig. Da du ja offensichtlich ein Makefile erstellen kannst, kannst du Eclipse ein solches benutzen lassen.

Seine Vorgehensweise wäre: 1. ein neues C++-Projekt als leeres Makefile-Projekt anlegen 2. mit Bazaar die Quellen von Widelands in das Projekt-Verzeichnis packen 3. dann innerhalb des Verzeichnisses in den build-Ordner wechseln und dort den cmake-Befehl ausführen (so wie dein erster Anlauf, zusätzlich mit der Option "-D CMAKE_VERBOSE_MAKEFILE=YES") 4. eine Makefile-Datei im Wurzelverzeichnis erstellen mit dem Inhalt

all: cd build && $(MAKE)

Dann sollte Eclipse das Projekt eigentlich bauen können und auch alles finden. Es gibt von unserer Seite allerdings keine Garantie, dass es funktioniert.

War das in etwa das, was du meintest?


Two is the oddest prime.

Top Quote