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

23.08.2014, 13:52

SFML übersetzen

Hallo Leute,

ich habe gerade ein kleines Problem, SFML mit cmake zu erstellen bzw. zu 'installieren'. Gleich davor: IDE ist Visual Studio 2013 mit entsprechendem Compiler, cmake mit GUI unter Windows.
Das Erstellen und das übersetzen des Projekts klappt eigentlich gut. Bis auf INSTALL wird alles übersetzt, da kommt immer die Nachricht, dass es übersprungen wurde.
Wenn ich dann versuche INSTALL danach zu erstellen kommt bei mir immer die Fehlermeldung:

Quellcode

1
2
3
4
5
6
7
8
9
10
Fehler  2   error MSB3073: Der Befehl "setlocal
"C:\Program Files (x86)\CMake 2.8\bin\cmake.exe" -DBUILD_TYPE=Debug -P cmake_install.cmake
if %errorlevel% neq 0 goto :cmEnd
:cmEnd
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
:cmErrorLevel
exit /b %1
:cmDone
if %errorlevel% neq 0 goto :VCEnd
:VCEnd" wurde mit dem Code 1 beendet.   C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppCommon.targets  132 5   INSTALL


Ich habe keine Ahnung, was das bedeutet, und was ich dagegen tun könnte. Irgendjemand Ideen?

MfG Kyle

2

23.08.2014, 14:20

Ignorieren.
Jetzt einfach die DLLs/LIBs linken und Spaß haben.

MfG
Check

3

23.08.2014, 20:31

Okay also das Problem hat sich quasi selbst gelöst. Wenn ich den Installationspfad bei cmake ändere, dann macht er mir auch das so wies soll.

Allerdings hab ich nun ein anderes Problem: Ich habe bei cmake die Optionen so eingestellt:
'BUILD_SHARED_LIBS' = false
'SFML_USE_STATIC_LIBS' = 'true'
Das ganze im Debug-Modus übersetzt und ins Projekt eingefügt. Beim übersetzen im Projekt selber krieg ich jetzt allerdings immer noch Linker-Fehler:

Quellcode

1
2
3
Fehler  1   error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl sf::err(void)" (?err@sf@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@XZ)" in Funktion ""public: unsigned char const * __thiscall sf::Image::getPixelsPtr(void)const " (?getPixelsPtr@Image@sf@@QBEPBEXZ)".    C:\Users\danie_000\documents\visual studio 2013\Projects\RPG\MapPacker\sfml-graphics-s-d.lib(Image.obj) MapPacker
Fehler  2   error LNK2001: Nicht aufgelöstes externes Symbol ""class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl sf::err(void)" (?err@sf@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@XZ)".    C:\Users\danie_000\documents\visual studio 2013\Projects\RPG\MapPacker\sfml-graphics-s-d.lib(ImageLoader.obj)   MapPacker
Fehler  3   error LNK1120: 1 nicht aufgelöste Externe  C:\Users\danie_000\documents\visual studio 2013\Projects\RPG\Debug\MapPacker.exe    1   1   MapPacker


Was mach ich denn nun schon wieder falsch? Ich dachte, wenn ich in cmake STATIC_LIBS einschalte funktioniert das?

4

23.08.2014, 21:22

Hast du sfml-system auch gelinkt?

MfG
Check

5

23.08.2014, 21:23

Haha ok, die Lösung war einfach. Dachte ich bräuchte nur Graphics :)

Danke =)

6

23.08.2014, 23:24

Viele interne Geschichten benutzen das typedef sf::err, welches eben in sfml-system definiert ist. Meiner Meinung nach nicht gerade toll, aber naja.
sfml-system sollte man so gesehen eigentlich immer linken, selten will man die SFML so minimalistisch benutzen, dass man nicht zumindest indirekt auf sfml-system zugreifen muss.

MfG
Check

Werbeanzeige