Compilierte programme auf anderen Rechnern ausführen => falsche Anwendungskonfiguration



  • dann musst du entweder deine dazu gelinkten libs auch auf Multithreaded einstellen oder auf dem Computer auf dem es laufen soll die vcredist installieren.



  • Du musst auf dem Zielsystem das vcredist_x86.exe installieren.



  • Ich bin dabei ein paar Sachen auszuprobieren aber leider hab ich grade ein paar Sachen aus dem realen Leben um die Ohren 😞

    Aber die vcredist oder das Net Framework zu installieren is nich so toll da ich meine Programme gerne meinen Freunden schicken will ("hehe sieh mal was ich da programmiert habe" *angeb*)

    Ausserdem muss ich mich mal mit der ganzen Thematik auseinander setzen, also Net Framework, Bibliotheken, Multithreaded usw. weil ich nur ein fortgeschrittener noob bin 🤡

    also ich forsche dann mal weiter 😉



  • mal ne andere Frage was wird eigentlich unter:

    Projekt->Eigenschaften->Konfigurationseigenschaften->Linker->Erweitert->[Zielcomputer]

    eingestellt 😕

    bei mir steht x86 (klingt ja nicht falsch)

    kann mir diese einstell Möglichkeit vielleicht helfen?



  • Also im Link von SciFi die Nummern 1 und 4 kommen für mein Problem nicht in frage. ich will ja Programme erstellen die auf anderen Rechnern laufen ohne dass die Leute irgendwelche Sachen installieren müssen.

    Die Methode 2 habe ich versucht, jedoch ohne Erfolg 😞

    Und Methode 3 erzeugt einen haufen Linker Fehler.

    1>Verknüpfen...
    1>msvcrt.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) ist bereits in LIBCMT.lib(typinfo.obj) definiert.
    1>msvcrt.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" (??4type_info@@AAEAAV0@ABV0@@Z) ist bereits in LIBCMT.lib(typinfo.obj) definiert.
    1>msvcrt.lib(MSVCR80.dll) : error LNK2005: _exit ist bereits in LIBCMT.lib(crt0dat.obj) definiert.
    1>msvcrt.lib(MSVCR80.dll) : error LNK2005: _fprintf ist bereits in LIBCMT.lib(fprintf.obj) definiert.
    1>msvcrt.lib(MSVCR80.dll) : error LNK2005: _fopen ist bereits in LIBCMT.lib(fopen.obj) definiert.
    1>msvcrt.lib(MSVCR80.dll) : error LNK2005: _fclose ist bereits in LIBCMT.lib(fclose.obj) definiert.
    1>msvcrt.lib(MSVCR80.dll) : error LNK2005: __isctype ist bereits in LIBCMT.lib(isctype.obj) definiert.
    1>LIBCMT.lib(crt0init.obj) : warning LNK4098: Standardbibliothek "msvcrt.lib" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.
    1>C:\C++\Projekte Eigen C++\SDL_Game2\Release\SDL_Game2.exe : fatal error LNK1169: Mindestens ein mehrfach definiertes Symbol gefunden.
    1>Das Buildprotokoll wurde unter "file://c:\C++\Projekte Eigen C++\SDL_Game2\SDL_Game2\Release\BuildLog.htm" gespeichert.
    1>SDL_Game2 - 8 Fehler, 8 Warnung(en)
    ========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========

    Also ich glaub ich muss mich doch mal an nen anderen Compiler gewöhnen aber die haben auch so ihre Eigenarten die ich nicht verstehe 🙄



  • hmm... also auch wenn ich auf dem anderen Computer das NetFramework installiere funktionierts immer noch nicht 😡
    Und vcredist habe ich nicht weil ich die Express version verwende 😞

    dass Mitliefern von .dll's funktioniert auch nicht 😡

    bleibt nurnoch Multithreaded /MT übrig .... und dass produziert bei mit nur Linker Fehler (siehe oben)

    hat keiner eine Idee?

    ich glaub ich dreh hier bald am Rad 😮



  • such halt mal bei Microsoft nach dem Redistributebale (Englische einschließen!)

    http://www.microsoft.com/downloads/details.aspx?FamilyID=32bc1bee-a3f9-4c13-9c99-220b62a191ee&DisplayLang=en



  • also ich glaube es liegt ein Fluch über mir 😮

    die runtergeladene vcredist erzielt auf meinem Zweitrechner auch keine wirkung *mit Faust auf Tisch schlag*

    Ich weiss ja dass Programmieren eine knifflige Sache ist bei der man viel Geduld braucht nur dass is echtn Ding 😡

    ich bin ja nun kein Kleinbeigeber aber dass treibt mich jetzt echt in den Wahnsinn.

    Dass mit dem Runtime Library auf MultiThreaded umstellen klingt für mich ja nach der besten Lösung. Nur ich weis net wie ich gegen die Linker Fehler vorgehen muss.

    irgendwie werden da gewisse Funktionen sowohl in der msvcrt.lib (die bei MultiThreadedDLL verwendet wird) als auch in der Libcmt.lib (MultiThreaded) definiert was zu Bibliothekskonflikten führt. ⚠

    Wenn ich nun sage dass die msvcrt.lib ignoriert werden soll so tauchen massig Nicht aufgelöstes externes Symbole auf.

    Gibt es denn keinen Menschen auf Erden der jemals ein Programm mit SDL auf VC2005Express compiliert hat und dessen Programm anschliessend auch auf anderen Rechnern lief und der mir sagen kann wie er dass Gemacht hat.
    *Ganz tief Luft hol*



  • Also ich hab dass Problem jetzt gelöst indem ich mir Visual C++ 2003 .Net Standard besorgt habe. :p

    Nach einem Jahr seit dem ich nun schon programmiere lohnt sich die Anschaffung auch aus anderen Gründen 🕶

    Also dann bis zu meinem nächsten Thread und Danke an alle die mir geholfen haben 🤡



  • Also diese ganzen Library-Varianten können einen Einsteiger tatsächlich zur Weißglut bringen. Teilweise habe selbst ich manchmal ein paar Schwierigkeiten, aber meistens liegt es an mir selber (Problem sitzt nicht im Computer, sondern sitzt meistens davor!). Irgendwann hat man alles ausprobiert, und weiß dann irgendwann was man einstellt und was mein sein lässt. 😉 Am besten man stellt sich sein Projekt einmal ein, und ändert es nicht mehr.

    Aber MSVC2003 habe ich auch noch, das ist für einen Einstieg auch nicht schlecht. Mach aber nicht den Fehler, und gurke damit 10 Jahre rum. Es gibt leider noch sehr viele, die den ollen MSVC6.0 benutzen. Der ist von 1998 und der macht heute mit modernem C++ nur Probleme.


Anmelden zum Antworten