Seite 2 von 3

Re: Mit Visual C++ kompilierte Programme weitergeben

Verfasst: Fr Jul 03, 2009 5:36 pm
von Xin
dani93 hat geschrieben:Sollte es jemand hinbekommen wäre das einen FAQ-Eintrag wert.
Dafür müsste man erstmal Dein Projekt und Deine Umgebung kopiert haben.

Re: Mit Visual C++ kompilierte Programme weitergeben

Verfasst: Fr Jul 03, 2009 5:51 pm
von nufan
Xin hat geschrieben:
dani93 hat geschrieben:Sollte es jemand hinbekommen wäre das einen FAQ-Eintrag wert.
Dafür müsste man erstmal Dein Projekt und Deine Umgebung kopiert haben.
Das war eher allgemein gemeint und nicht auf mein Projekt bezogen.
Mein Projekt könnt ihr gerne haben. Ist aber nur C++ mit SDL, SDL_ttf und SDL_net. Und an SDL liegt es wahrscheinlich nicht.
Als Umgebung habe ich MS Visual C++ Express 2008 SP 1. Kopieren wäre da etwas aufwändiger ;)

Ich hab sogar versucht das Programm mit wine zu starten:

Code: Alles auswählen

fixme:actctx:parse_assembly_elem wrong version for assembly manifest
fixme:actctx:parse_manifest_buffer failed to parse manifest L"c:\\pfadzum\\projekt\\Microsoft.VC90.CRT.manifest"
fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC90.CRT"
err:module:attach_process_dlls "MSVCR90.dll" failed to initialize, aborting
err:module:LdrInitializeThunk Main exe initialization for L"c:\\pfadzum\\programm.exe" failed, status c0000142

Re: Mit Visual C++ kompilierte Programme weitergeben

Verfasst: Fr Jul 03, 2009 8:45 pm
von cloidnerux
Es kann auch daran liegen, das du das Projekt im Debug-Modus Kompilierst, wobei der Compiler automatisch Debug-Hilfen einbaut.
probeirs doch mal mit Dem Umstellen von Debug auf Relese, entweder oben im Menü oder unter den projekteigenschaften.

Re: Mit Visual C++ kompilierte Programme weitergeben

Verfasst: Fr Jul 03, 2009 8:51 pm
von nufan
cloidnerux hat geschrieben:Es kann auch daran liegen, das du das Projekt im Debug-Modus Kompilierst, wobei der Compiler automatisch Debug-Hilfen einbaut.
probeirs doch mal mit Dem Umstellen von Debug auf Relese, entweder oben im Menü oder unter den projekteigenschaften.
Hab bereits zuvor beides probiert, immer mit dem gleichen Ergebnis.

Re: Mit Visual C++ kompilierte Programme weitergeben

Verfasst: Fr Jul 03, 2009 9:14 pm
von cloidnerux
Ich habe noch das hier gefunden: http://www.gm-d.de/wbb/sonstiges/andere ... ss-progra/
Projekteigenschaften->Konfiguration->C/C++->Codegenerierung->Laufzeitbibilothek und dann auf Multithread.
Wenn das nciht geht musst du auf dienem Anderen Rechner mal die Visual C++ 2008 Resttributale Instalieren.

Re: Mit Visual C++ kompilierte Programme weitergeben

Verfasst: Fr Jul 03, 2009 9:30 pm
von nufan
cloidnerux hat geschrieben:Ich habe noch das hier gefunden: http://www.gm-d.de/wbb/sonstiges/andere ... ss-progra/
Projekteigenschaften->Konfiguration->C/C++->Codegenerierung->Laufzeitbibilothek und dann auf Multithread.
So will das Programm überhaupt nicht kompilieren/linken:

Code: Alles auswählen

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(MSVCR90.dll) : error LNK2005: _isspace ist bereits in LIBCMT.lib(_ctype.obj) definiert.
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: ___iob_func ist bereits in LIBCMT.lib(_file.obj) definiert.
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _fclose ist bereits in LIBCMT.lib(fclose.obj) definiert.
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _exit ist bereits in LIBCMT.lib(crt0dat.obj) definiert.
cloidnerux hat geschrieben:Wenn das nciht geht musst du auf dienem Anderen Rechner mal die Visual C++ 2008 Resttributale Instalieren.
Da bleib ich lieber bei mingw, da muss ich auch nur eine zusätzliche DLL mitgeben.

Re: Mit Visual C++ kompilierte Programme weitergeben

Verfasst: Sa Jul 04, 2009 9:16 am
von Xin
dani93 hat geschrieben:
cloidnerux hat geschrieben:Ich habe noch das hier gefunden: http://www.gm-d.de/wbb/sonstiges/andere ... ss-progra/
Projekteigenschaften->Konfiguration->C/C++->Codegenerierung->Laufzeitbibilothek und dann auf Multithread.
So will das Programm überhaupt nicht kompilieren/linken:

Code: Alles auswählen

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(MSVCR90.dll) : error LNK2005: _isspace ist bereits in LIBCMT.lib(_ctype.obj) definiert.
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: ___iob_func ist bereits in LIBCMT.lib(_file.obj) definiert.
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _fclose ist bereits in LIBCMT.lib(fclose.obj) definiert.
1>msvcrt.lib(MSVCR90.dll) : error LNK2005: _exit ist bereits in LIBCMT.lib(crt0dat.obj) definiert.
Offensichtlich bindest Du so die gleichen Funktionen mehrfach ein. Also ist die Frage, ob Du die LibCMT.lib brauchst oder eine andere... Diejenige, die Du nicht brauchst, musst Du dann sperren. (Linker, Libs nicht verwenden: Libcmt.lib - bzw. die andere)

Re: Mit Visual C++ kompilierte Programme weitergeben

Verfasst: Sa Jul 04, 2009 2:23 pm
von cloidnerux
Vielleicht wäre es hilfreich mal dein Komplettes projekt zu bekommen um es auf dem eigenen Rechner zu Compilieren.

Re: Mit Visual C++ kompilierte Programme weitergeben

Verfasst: Sa Jul 04, 2009 3:01 pm
von nufan
Xin hat geschrieben:Offensichtlich bindest Du so die gleichen Funktionen mehrfach ein. Also ist die Frage, ob Du die LibCMT.lib brauchst oder eine andere... Diejenige, die Du nicht brauchst, musst Du dann sperren. (Linker, Libs nicht verwenden: Libcmt.lib - bzw. die andere)
Ich hab keine Ahnung was libcmt oder "die andere" ist. Bewusst habe ich die nicht eingebunden. Ich hab ein paar Header mehrfach eingebunden, die haben aber alle eine Präprozessor-Bedingung, damit der Code nicht eingefügt wird.
cloidnerux hat geschrieben:Vielleicht wäre es hilfreich mal dein Komplettes projekt zu bekommen um es auf dem eigenen Rechner zu Compilieren.
Ich habe jetzt alle Einstellungen zurückgesetzt, so dass man es kompilieren kann. Zum Kompilieren müssen SDL, SDL_ttf und SDL_net Header im include/SDL/-Verzeichnis liegen und die libs im libs/-Verzeichnis. Zum Ausführen des Programms außerhalb der IDE muss der Inhalt des Ordners "DLLs" ins Verzeichnis der exe kopiert werden. Das gleiche gilt für "arial.ttf" und "typing.bmp".
Bugs sollten im Programm keine sein, aber einige Sachen sind nur halb fertig (z.B. kann man mehrzeiligen Text eingeben, bei der Ausgabe steht aber alles in einer Zeile) bzw. übers GUI noch nicht verfügbar. Der Ordnername ist eigentliche nur eine Abkürzung, trifft aber zurzeit auch auf den Code zu ^^
Aber hier gehts ja nicht um das was drinsteht sondern wie mans ausführt.

Link

Re: Mit Visual C++ kompilierte Programme weitergeben

Verfasst: So Jul 05, 2009 1:01 pm
von Dirty Oerti
Woran es liegt, dass du dein Programm nicht ausliefern kannst ist dir aber inzwischen klar, oder?

Es fehlt einfach die "Laufzeitumgebung" von Visual C++.
Dieser Compiler erstellt nämlich "optimierten" Code, der im Gegenzug dafür aber die CRT braucht.