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

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

11

19.06.2012, 15:28

Bisher hab ich einfach in den Projekteinstellungen die Codegenerierung unter C/C++ auf Multithreaded (/MT)

Genau da liegt vermutlich dein Problem. Linkest du irgendwelche Libraries statisch? Wenn ja, müssen diese Libraries auch für die selbe Runtime kompiliert werden. Abgesehen davon, musst du aufpassen, dass du dort für den Debug Build eine andere Einstellung brauchst wie für den Release Build.

Mein Rat wär, nicht an diesem Flag herumzufummeln, wenn du nicht ganz genau weißt, was du tust (es gibt sehr gute Gründe wieso der Defaultwert ist, was er ist).

Oberon

Treue Seele

Beiträge: 181

Wohnort: Österreich

Beruf: Student

  • Private Nachricht senden

12

19.06.2012, 15:37

Vielleicht ist auch das "Präprozessorsymbol" SFML_DYNAMIC (wenn du DLLs benutzt) bzw. SFML_STATIC (ansonsten) nicht definiert. Im Zweifelsfall nochmal mit der Debug-Konfiguration (die ja anscheinend funktioniert) abgleichen.

Bad

unregistriert

13

19.06.2012, 15:56

alles was ich mache ist:

  1. Neues Projekt -> Win32 Projekt, konsolenanwendung, leeres projekt
  2. Neues Element -> main.cpp
  3. Dann Projekteigenschaftenseiten:
  • C/C++ Allgemein Zusätzliche Includeverzeichnisse [Alle Konfigurationen] -> Ordner Include hinzufügen
  • Linker Allgemein Zusätzliche Bibilothekverzeichnisse [Alle Konfigurationen] -> Ordner lib hinzufügen
  • Linker Eingabe Zusätzliche Abhänigkeiten [Debug] :
  • sfml-audio-s-d.lib
    sfml-graphics-s-d.lib
    sfml-system-s-d.lib
    sfml-window-s-d.lib
  • Linker Eingabe Zusätzliche Abhänigkeiten [Release] :
  • sfml-audio-s.lib
    sfml-graphics-s.lib
    sfml-system-s.lib
    sfml-window-s.lib
  • C/C++ Präprozessor Präprozessordefinition -> SFML_STATIC einfügen
  • folgenden Beispiel Quelltext in die main.cpp einfügen

    C-/C++-Quelltext

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    #include <SFML/Graphics.hpp>
    
    int main()
    {
        sf::RenderWindow window(sf::VideoMode(300, 200), "SFML works!");
        sf::Text text("Hello SFML");
    
        while (window.isOpen())
        {
            sf::Event event;
            while (window.pollEvent(event))
            {
                if (event.type == sf::Event::Closed)
                    window.close();
            }
    
            window.clear();
            window.draw(text);
            window.display();
        }
    
        return 0;
    }
  • EDIT: ich mache auch jedesmal übernehmen und am ende auf OK
__________________________________Bishier hierhinklappt alles in der Debug Version_______________________________

Aber was muss ich ab jetzt weiter einstellen damit mein Freund nurnoch die SFML dll's benötigt ? Die Release Version lässt sich nicht kompilieren.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

14

19.06.2012, 15:59

Du brauchst aber eine Release Version. Für welche Runtime sind deine SFML libs gebaut? Hast du SFML_STATIC in beiden Konfigurationen definiert? Wenn du die SFML statisch linkest, dann brauchst du gar keine SFML dlls.

Bad

unregistriert

15

19.06.2012, 16:09

Folgende Version habe ich geladen:
Windows 32 bits - Visual C++ 2010 (11.4 MB)


und nachdem ich SFML_STATIC in release eingefügt habe, kann ich jetzt auch eine Release erstellen, zwar mit einer warnung, aber es geht.

( warning LNK4098: Standardbibliothek "LIBCMT" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. )



Jedoch bekommen meine Freunde immer noch den Error, dass die MSVCP100D.dll fehlt...

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

16

19.06.2012, 16:18

Ich würde dir empfehlen, die SFML selber zu kompilieren, dann hast du auch die Kontrolle darüber, gegen welche Runtime du linkest...

Deine Freunde bekommen den Error, weil du ihnen deine Debugversion geschickt hast, ich weiß nicht, wie oft ich das noch sagen soll!?

Bad

unregistriert

17

19.06.2012, 16:24

Nein ich schicke ihnen die release !!!!

und nur so nebenbei, meine freunde haben kein MSVC2010.

wie soll ich sie mir selber kompilieren ?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

18

19.06.2012, 16:28

MSVCP100D.dll ist aber die Debug Runtime (Microsoft Visual C Plus Plus 10.0 Debug)... ;)

Auf jeden Fall sollten deine Freunde mal die entsprechende Redistributable installieren.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dot« (19.06.2012, 16:33)


Bad

unregistriert

19

19.06.2012, 16:36

Sorry!

Paste and Copy fail, sorry ich meine natürlich MSVCP100.dll fehlt !
aber ich kann doch später ein Spiel hochladen und jedem erzählen er muss das vorher installieren ?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

20

19.06.2012, 16:38

In dem Fall sollte die Installation der (richtigen) Redistributable das Problem beheben.

Werbeanzeige