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

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

21

26.06.2012, 12:15

Ja ist doch klar. Du sagst dem Linker nie etwas über die ganzen Bibliotheken. Du hast lediglich eine Variable wo die drin stehen, die du aber nie benutzt.

foreach

Frischling

Beiträge: 87

Beruf: Student

  • Private Nachricht senden

22

26.06.2012, 12:16

Ich hätte noch ein Paar Fragen:

Bekommst du die Fehlermeldungen nur bei boost-Funktionen?

Sind alle Bibliotheken mit dem gleichen Compiler bzw. der gleichen Compilerversion compiliert worden?

23

26.06.2012, 12:55

Zitat

Ja ist doch klar. Du sagst dem Linker nie etwas über die ganzen Bibliotheken. Du hast lediglich eine Variable wo die drin stehen, die du aber nie benutzt.

Und wie teile ich ihm das mit? Bin noch ein ziemlicher Makefiles Anfänger...

Zitat

Bekommst du die Fehlermeldungen nur bei boost-Funktionen?

Nein, auch bei meinen Funktionen aus der Libary...

Zitat

Sind alle Bibliotheken mit dem gleichen Compiler bzw. der gleichen Compilerversion compiliert worden?

Ja, ich hab nachträglich alle .cpp Dateien mit dem gleichen Compiler zu diesen .a Dateien kompiliert.

Tobiking

1x Rätselkönig

  • Private Nachricht senden

24

26.06.2012, 13:21


Ich möchte nicht die Projektdateien, sondern die Executable erstellen... Oder ist das mit CMake auch möglich?

Ja, habe ich extra vorher nachgeguckt. Es lassen sich Makefiles sowohl für GNU Make als auch für NMake erstellen.

25

27.06.2012, 10:23

[Ein langer umfassender Beitrag, trotz der Gefahr das sich deswegen keiner den Beitrag durch lesen wird und wiederum dadurch auch keiner Antworten wird]

Ich hab es mit Makefiles und co. ausprobiert und alles mögliche versucht...
Mein letzter Versuch war das ganze ohne Makefiles zu probieren (was genau auf das gleiche hinausgeht)...:

Erstmal alle Dateien die durch die Versuche entstanden sind gelöscht, Mingw neu installiert, Umgebungsvariablen gesetzt, auf Funktionstüchtigkeit
über g++ --version und gcc --version geprüft. Alles wunderbar!

Dann eine Batch Datei erstellt mit folgenden Inhalt:

C-/C++-Quelltext

1
2
3
4
5
@echo off

g++ Main.cpp -Wall -g -LC:/MinGW/lib/ -ltools -lboost -lboostsystem -lsfmlaudio -lsfmlgraphics -lsfmlwindow -lsfmlsystem -lsfmlnetwork -std=c++11

pause


- Dann dieses SFML Package runter geladen: http://www.sfml-dev.org/download.php -> Windows 32 bits - GCC DW2
- Die SFML .a Dateien in das Verzeichnis C:\MinGW\lib getan
- Bindestriche im Namen raus genommen, da sonst Probleme beim auflisten in der Batch Datei entstehen -> sfml-network.a = sfmlnetwork.a ... usw.
- Boost Ordner geöffnet, dann in lib Ordner gegangen, dann in die Ordner gegangen die ich brauche, in dem Fall filesystem und system, jeweils eine Batch Datei erstellt
mit folgenden Inhalt:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
@echo off

SET NAME=      libboost.a
SET CPPFILES=  codecvt_error_category.cpp operations.cpp path.cpp path_traits.cpp portability.cpp unique_path.cpp utf8_codecvt_facet.cpp windows_file_codecvt.cpp
SET OBJECTS=   codecvt_error_category.o operations.o path.o path_traits.o portability.o unique_path.o utf8_codecvt_facet.o windows_file_codecvt.o
SET LIBARIES=  -LC:/MinGW/lib/

g++ -c -std=gnu++11 %CPPFILES% %LIBARIES%
ar rs %NAME% %OBJECTS%
ranlib %NAME%

pause


... und ...

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
@echo off

SET NAME=      libboostsystem.a
SET CPPFILES=  error_code.cpp
SET OBJECTS=   error_code.o
SET LIBARIES=  -LC:/MinGW/lib/

g++ -c -std=gnu++11 %CPPFILES% %LIBARIES%
ar rs %NAME% %OBJECTS%
ranlib %NAME%

pause


So nachdem ich damit die .a Dateien erstellt habe, habe ich diese auch ins Verzeichnis C:/MinGW/lib/ getan...
Dann, als ich das selbe auch mit meiner Lib gemacht habe und ich somit alle .a Dateien hatte, habe ich noch die jeweiligen Include Verzeichnisse
in das Verzeichnis C:\MinGW\include getan!

Das wären dann das gesamte boost Verzeichnis, mein Lib Include Verzeichnis und das SFML Verzeichnis...

SO!!!!!!1111elf :cursing:

Nun kamen keine undefined Reference Fehler mehr und ich war der glücklichste Mensch der Welt, noch glücklicher als sogar die Executable mit
dem namen a.exe enstand, als ich das Programm öffnen wollte blieb mein Herz stehen! Aber Gott sei dank, es haben nur die DLL Dateien
gefehlt, als ich die in den selben Ordner wie in der Exe getan habe, konnte ich das Programm starten!!!!!

ABER, ABER, ABER!

Das Programm stürzt GNADENLOS ab, nachdem ich bestimmte Objekte erstelle... -.- *F*** THE WORLD*

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
    // HIER KOMMT ER NOCH AN

    sf::RenderWindow app(sf::VideoMode(800, 600, 32), "test33"); // Wenn ich das auskommentiere stürzt er 
    // beim erstellen des übernächsten Objektes (ein Objekt meiner Lib) ab...
    
    // ... Hier kommt er in jedem Fall durch! Keine Ahnung wieso!
    sf::Event event;
    
    // Hier würde er als nächstes Abstürzen wenn ich das obige Objekt (app) kommentiere und den Konstruktor abändere... -.-
    CManager manager(app, event);


Das ganze habe ich durch simple Konsolen Ausgaben raus gefunden, also wann das Programm abstürzt, einfach nach jeder Zeile eine Ausgabe,
und tada, so habe ich raus gefunden das er immer an den oben genannten Stellen abstürzt!

... Nachdem ich nun fertig bin mit Frust raus lassen, hat irgendjemand, IRGENDJEMAND, eine Idee weshalb das Programm einfach ohne irgendwas
frozed und dann abstürzt!? Ich meine Mingw schmeißt mir keine Fehler! Nichts! Kompilieren und Linken funktioniert wunderbar!

Was soll ich noch probieren und machen bis das ganze endlich mal funktioniert... ich weiß nicht mehr weiter..., für jede Hilfe wäre ich euch
unendlich dankbar! Habe ich etwa die Biblotheken falsch kompiliert? Oder woran liegt es? :(

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Jack« (27.06.2012, 12:05)


26

27.06.2012, 11:47

Du könntest dependency walker benutzen um zu prüfen, ob irgendwas mit den dlls durcheinander kommt:
http://www.dependencywalker.com/
Lieber dumm fragen, als dumm bleiben!

Tobiking

1x Rätselkönig

  • Private Nachricht senden

27

27.06.2012, 11:59

Probier vielleicht mal die SJLJ Libs von SFML. Laut der TDM-GCC Seite ist SJLJ default. Weiß ja nicht was für ein MingW du nutzt.

28

27.06.2012, 12:20

Der Debugger sagt:

Zitat


Unhandled exception at 0x691C2811 (sfml-window-2.dll) in a.exe: 0xC0000005: Access violation writing location 0x00000320.

Dependency Walker sagt wenn ich die DLL's in dem Programm öffne:

Zitat

GPSVC.DLL Error opening file. Das System kann die angegebene Datei nicht finden(2).
IESHIMS.DLL Error opening file. Das System kann die angegebene Datei nicht finden(2).

... Fragt sich nur wie ich das reparieren kann und ob das dass Problem löst...

Zitat

Probier vielleicht mal die SJLJ Libs von SFML. Laut der TDM-GCC Seite ist SJLJ default. Weiß ja nicht was für ein MingW du nutzt.

Hab ich schon probiert, selbes Ergebnis... :(
Und ich verwende die neuste Mingw version -> http://sourceforge.net/projects/mingw/?source=recommended

29

27.06.2012, 18:02

ICH LIEBE EUCH ALLE! ES FUNKTIONIERT JETZT ENDLICH, VIELEN VIELEN DANK FÜR EURE HILFE, OHNE EUCH HÄTTE ICH DAS NICHT GESCHAFFT ;(! xDD :D :D :love:
WILL KINDER VON EUCH! Ja ich bin -> :pillepalle: !!!! MIR ABER SCHEISS EGAL, F*** THE WORLD! :love: :crazy: :crazy:

DarioFrodo

Treue Seele

Beiträge: 349

Wohnort: Kerkau, 100km nördlich von Magdeburg

Beruf: Selbstständig

  • Private Nachricht senden

30

09.07.2012, 08:38

xD
Erst wenn der letzte Fluss vergiftet,
der letzte Baum gefällt,
der letzte Fisch gefangen,
dann werdet ihr merken, dass man Geld nicht essen kann

Man verkauft die Erde nicht, auf der die Menschen wandeln.

- Indianerweisheiten

Ich bin auch ein einhornimmond ;)

Werbeanzeige