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

Schwarzefee

Treue Seele

  • »Schwarzefee« ist der Autor dieses Themas

Beiträge: 155

Wohnort: Ost-Sachsen

Beruf: Programmierer

  • Private Nachricht senden

1

12.05.2014, 14:44

SFML 2.1 + wxWidgets

Hi,

ich versuche ein wxWidgets Control für SFML 2.1 zu erstellen.
Ich bin so vorgegangen wie im Beispiel für SFML 1.6.

Um die Controls in mehreren Projekten nutzen zu können, habe ich sie in eine statische Bibliothek ausgelagert.
Allerdings bekomme ich mit SFML2.1 mehrere nicht aufgelöste externe Symbole:

Nicht aufgelöstes externes Symbol ""public: virtual class sf::Vector2<unsigned int> __thiscall sf::RenderWindow::getSize(void)const " (?getSize@RenderWindow@sf@@UBE?AV?$Vector2@I@2@XZ)".
Nicht aufgelöstes externes Symbol ""protected: virtual void __thiscall sf::RenderWindow::onCreate(void)" (?onCreate@RenderWindow@sf@@MAEXXZ)".
Nicht aufgelöstes externes Symbol ""protected: virtual void __thiscall sf::RenderWindow::onResize(void)" (?onResize@RenderWindow@sf@@MAEXXZ)".
Nicht aufgelöstes externes Symbol ""private: virtual bool __thiscall sf::RenderWindow::activate(bool)" (?activate@RenderWindow@sf@@EAE_N_N@Z)".

Weis jemand woran das liegen kann?


Gruß

eXpl0it3r

Treue Seele

Beiträge: 386

Wohnort: Schweiz

Beruf: Professional Software Engineer

  • Private Nachricht senden

2

12.05.2014, 15:10

Die Fehlermeldungen sagen nur, dass die benannten Funktionen nicht gefunden werden konnten, hast du SFML richtig gelinkt? Gib doch mal dein komplettes Buildcommand.
Vielleicht hast du auch einfach etwas nicht richtig inkludiert, dann bräuchten wir den Code.
Blog: https://dev.my-gate.net/
—————————————————————————
SFML: https://www.sfml-dev.org/
Thor: http://www.bromeon.ch/libraries/thor/
SFGUI: https://github.com/TankOs/SFGUI/

Schwarzefee

Treue Seele

  • »Schwarzefee« ist der Autor dieses Themas

Beiträge: 155

Wohnort: Ost-Sachsen

Beruf: Programmierer

  • Private Nachricht senden

3

12.05.2014, 15:38

Hi,

Hier der Output von der Control-Bibliothek:

Zitat


1>------ Erstellen gestartet: Projekt: STwxWidgets, Konfiguration: Debug Win32 ------
1> Microsoft (R) C/C++-Optimierungscompiler Version 17.00.61030 für x86
1> Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
1>
1> cl /c /ZI /nologo- /W3 /WX- /Od /Oy- /D WIN32 /D _DEBUG /D _LIB /D SFML_STATIC /D _UNICODE /D UNICODE /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Yc"stdafx.h" /Fp"Debug\STwxWidgets.pch" /Fo"Debug\\" /Fd"Debug\vc110.pdb" /Gd /TP /analyze- /errorReport:prompt stdafx.cpp
1>cl : Befehlszeile warning D9035: Die Option "nologo-" ist veraltet und wird in einer der nächsten Versionen entfernt.
1>
1> stdafx.cpp
1> Hinweis: Wiederverwenden der beständigen vorkompilierten Headerdatei Debug\STwxWidgets.pch
1> Microsoft (R) C/C++-Optimierungscompiler Version 17.00.61030 für x86
1> Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
1>
1> cl /c /ZI /nologo- /W3 /WX- /Od /Oy- /D WIN32 /D _DEBUG /D _LIB /D SFML_STATIC /D _UNICODE /D UNICODE /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Yu"../stdafx.h" /Fp"Debug\STwxWidgets.pch" /Fo"Debug\\" /Fd"Debug\vc110.pdb" /Gd /TP /analyze- /errorReport:prompt STwxWidgetsSource\GraficsPanel.cpp STwxWidgetsSource\GraficsScrollPanel.cpp STwxWidgetsSource\InfoDialog.cpp
1>cl : Befehlszeile warning D9035: Die Option "nologo-" ist veraltet und wird in einer der nächsten Versionen entfernt.
1>
1> Überspringen... (keine relevanten Änderungen gefunden)
1> InfoDialog.cpp
1> GraficsScrollPanel.cpp
1> GraficsPanel.cpp
1> STwxWidgets.vcxproj -> D:\Programmierung\VS2012 Projects\SpaceTales\Debug\STwxWidgets.lib
========== Erstellen: 1 erfolgreich, 0 fehlerhaft, 1 aktuell, 0 übersprungen ==========


und hier von der wxWidgets-Application:

Zitat


3>------ Neues Erstellen gestartet: Projekt: TestApp, Konfiguration: Debug Win32 ------
3> Microsoft (R) C/C++-Optimierungscompiler Version 17.00.61030 für x86
3> Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
3>
3> cl /c /ZI /nologo- /W3 /WX- /Od /Oy- /D WIN32 /D _DEBUG /D _WINDOWS /D SFML_STATIC /D _UNICODE /D UNICODE /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Yc"stdafx.h" /Fp"Debug\TestApp.pch" /Fo"Debug\\" /Fd"Debug\vc110.pdb" /Gd /TP /analyze- /errorReport:prompt stdafx.cpp
3>cl : Befehlszeile warning D9035: Die Option "nologo-" ist veraltet und wird in einer der nächsten Versionen entfernt.
3>
3> stdafx.cpp
3> Microsoft (R) C/C++-Optimierungscompiler Version 17.00.61030 für x86
3> Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
3>
3> cl /c /ZI /nologo- /W3 /WX- /Od /Oy- /D WIN32 /D _DEBUG /D _WINDOWS /D SFML_STATIC /D _UNICODE /D UNICODE /Gm /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Yu"../stdafx.h" /Fp"Debug\TestApp.pch" /Fo"Debug\\" /Fd"Debug\vc110.pdb" /Gd /TP /analyze- /errorReport:prompt Source\MainFrame.cpp Source\TestApp.cpp
3>cl : Befehlszeile warning D9035: Die Option "nologo-" ist veraltet und wird in einer der nächsten Versionen entfernt.
3>
3> TestApp.cpp
3> MainFrame.cpp
3> Code wird generiert...
3>STwxWidgets.lib(GraficsPanel.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: void __thiscall sf::Window::create(struct HWND__ *,struct sf::ContextSettings const &)" (?create@Window@sf@@QAEXPAUHWND__@@ABUContextSettings@2@@Z)" in Funktion ""public: __thiscall STEngine::STwxWidgets::GraficsPanel::GraficsPanel(class wxWindow *,class STEngine::Engine *,class wxPoint,class wxSize)" (??0GraficsPanel@STwxWidgets@STEngine@@QAE@PAVwxWindow@@PAVEngine@2@VwxPoint@@VwxSize@@@Z)".
3>STwxWidgets.lib(GraficsPanel.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall sf::RenderWindow::RenderWindow(void)" (??0RenderWindow@sf@@QAE@XZ)" in Funktion ""public: __thiscall STEngine::STwxWidgets::GraficsPanel::GraficsPanel(class wxWindow *,class STEngine::Engine *,class wxPoint,class wxSize)" (??0GraficsPanel@STwxWidgets@STEngine@@QAE@PAVwxWindow@@PAVEngine@2@VwxPoint@@VwxSize@@@Z)".
3>STwxWidgets.lib(GraficsPanel.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: virtual __thiscall sf::RenderWindow::~RenderWindow(void)" (??1RenderWindow@sf@@UAE@XZ)" in Funktion "__unwindfunclet$??0GraficsPanel@STwxWidgets@STEngine@@QAE@PAVwxWindow@@PAVEngine@2@VwxPoint@@VwxSize@@@Z$2".
3>STwxWidgets.lib(GraficsPanel.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""public: virtual class sf::Vector2<unsigned int> __thiscall sf::RenderWindow::getSize(void)const " (?getSize@RenderWindow@sf@@UBE?AV?$Vector2@I@2@XZ)".
3>STwxWidgets.lib(GraficsPanel.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""protected: virtual void __thiscall sf::RenderWindow::onCreate(void)" (?onCreate@RenderWindow@sf@@MAEXXZ)".
3>STwxWidgets.lib(GraficsPanel.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""protected: virtual void __thiscall sf::RenderWindow::onResize(void)" (?onResize@RenderWindow@sf@@MAEXXZ)".
3>STwxWidgets.lib(GraficsPanel.obj) : error LNK2001: Nicht aufgelöstes externes Symbol ""private: virtual bool __thiscall sf::RenderWindow::activate(bool)" (?activate@RenderWindow@sf@@EAE_N_N@Z)".
3>D:\Programmierung\VS2012 Projects\SpaceTales\Debug\TestApp.exe : fatal error LNK1120: 7 nicht aufgelöste Externe
========== Alles neu erstellen: 2 erfolgreich, 1 fehlerhaft, 0 übersprungen ==========


Könnt ihr damit was anfangen?

Die SFML-Pfade sind hinzugefügt, und die Libs:
sfml-audio-s-d.lib
sfml-graphics-s-d.lib
sfml-main-d.lib
sfml-network-s-d.lib
sfml-system-s-d.lib
sfml-window-s-d.lib
gelinkt.
In der Control-Lib bekomm ich beim kompilieren auch keine Fehler, nur in der wxWidgets Application, wo die Control-Lib gelinkt wird.


Gruß

eXpl0it3r

Treue Seele

Beiträge: 386

Wohnort: Schweiz

Beruf: Professional Software Engineer

  • Private Nachricht senden

4

12.05.2014, 16:14

Also aus meiner Sicht wird da nirgendwo gegen Libraries gelinkt. Bist du sicher, dass du den Befehl unter "Build" kopiert hast?
Wir brauchen also das Linker Command von deiner STwxWidgets Library.

"GraficsPanel, GraficsScrollPanel" - Es ist übrigens Graphics, wie sfml-graphics. ;)
Blog: https://dev.my-gate.net/
—————————————————————————
SFML: https://www.sfml-dev.org/
Thor: http://www.bromeon.ch/libraries/thor/
SFGUI: https://github.com/TankOs/SFGUI/

Schwarzefee

Treue Seele

  • »Schwarzefee« ist der Autor dieses Themas

Beiträge: 155

Wohnort: Ost-Sachsen

Beruf: Programmierer

  • Private Nachricht senden

5

12.05.2014, 16:51

Hi,

also wie zusehen ist, benutze ich VS 2012 (Express).
Ich hab im Eigenschaftsmanager für "Microsoft.Cpp.Win32.user" die Libs gelinkt. Das sollte ja dann für alle Projekte gelten.

Testweise hab ich in der stdafx.h folgendes reingeschrieben:

C-/C++-Quelltext

1
2
3
4
5
6
#pragma comment (lib, "sfml-audio-s-d.lib")
#pragma comment (lib, "sfml-graphics-s-d.lib")
#pragma comment (lib, "sfml-main-d.lib")
#pragma comment (lib, "sfml-network-s-d.lib")
#pragma comment (lib, "sfml-system-s-d.lib")
#pragma comment (lib, "sfml-window-s-d.lib")


Hat leider auch nichts gebracht.

Zitat

"GraficsPanel, GraficsScrollPanel" - Es ist übrigens Graphics, wie sfml-graphics. ;)

joa da hab ich wohl Deutsch und Englisch ein bisschen durcheinander bebracht. Danke für den Hinweis ;)



Gruß

Schwarzefee

Treue Seele

  • »Schwarzefee« ist der Autor dieses Themas

Beiträge: 155

Wohnort: Ost-Sachsen

Beruf: Programmierer

  • Private Nachricht senden

6

12.05.2014, 17:02

Hi,

ganz dummen Fehler gefunden ...

Ich hatte anscheinend versehentlich SFML 2.1 für 64Bit runtergeladen, meine Projekte laufen aber unter 32Bit Konfiguration...

Dazu fällt mir gleich noch ne Frage ein:
Reicht es wenn man seine Programme für 32Bit kompiliert? Die laufen ja dann auch unter 64Bit.
Oder sollte man 2 verschiedene Versionen (32- und 64Bit) anbieten?


Gruß

eXpl0it3r

Treue Seele

Beiträge: 386

Wohnort: Schweiz

Beruf: Professional Software Engineer

  • Private Nachricht senden

7

12.05.2014, 17:31

Ja 32bit Applikationen laufen auch unter 64 bit Systemen.
Blog: https://dev.my-gate.net/
—————————————————————————
SFML: https://www.sfml-dev.org/
Thor: http://www.bromeon.ch/libraries/thor/
SFGUI: https://github.com/TankOs/SFGUI/

Werbeanzeige