Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 04:22

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Wie C++ Programme kompilieren?

Discussion on Wie C++ Programme kompilieren? within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: May 2012
Posts: 23
Received Thanks: 1
Wie C++ Programme kompilieren?

Heyho,

ich wollte mal Fragen wie Ihr eure Programme kompiliert, so dass diese auf möglichst vielen Plattformen funktionieren?

Wollte vor ein paar Tagen ein Programm auf einem PC mit Windows Vista starten und da fehlte dann msvcp110d.dll. Habe dann herausgefunden, dass man dafür die Redistributable benötigt (was hauptsächlich allerdings nur Leute installiert haben, die auch mit Visual Studio oder derartigem arbeiten).
Habe ebenfalls herausgefunden, dass man in den Kompilierkonfigurationen das kompilieren so einstellen kann, dass die "debug-dll" nicht benötigt wird. Auf einem anderem Vista System hats dann geklappt.
Leider musste ich auch bemerken, dass dieses programm auf einem Win32 System nicht funktioniert und die Fehlermedlung ausgibt, dass die .exe keine gültige Win32 Anwendung ist, obwohl in den Konfigurationen fürs Kompilieren Win32 steht.

Ich Versuche gerade Verschiedene Einstellungen, aber leider gibt es so viele (die ich auch nicht verstehe ) und da wollt ich mal fragen wie ihr das so handhabt.

Kompilieren tu ich selber auf einem Win7 64 Bit System mit dem Visual Studio 11 Compiler.
-Epitaph- is offline  
Old 08/24/2012, 19:34   #2
 
elite*gold: 0
Join Date: May 2011
Posts: 30
Received Thanks: 7
Damit ein Programm auf verschiedenen Platformen läuft musst du es für jede Platform einzeln kompilieren - unter Platformen verstehe ich Windows, Linux, Mac, etc. -

Ich kenn mich mit VS Compiler zwar nicht aus, aber ich denke, du musst im das Programm im "Release-Modus" kompilieren, um die debug.dll wegzukriegen, meistens gibts in der IDE eine Dropdownmenü oder dergleichen wo man das einstellen kann.

Wenn du unter verschiedenen Platformen Win7, Vista, XP verstehst und nur die Fehlermeldungen wegen den DLLs weg haben willst, dann musst du dein Programm entweder statisch linken - was deine Executable recht groß macht - oder du packst die DLLs einfach in das gleiche Verzeichnis wie dein Programm.
AkiraSoul is offline  
Old 08/24/2012, 20:33   #3
 
.SkyneT.'s Avatar
 
elite*gold: 273
Join Date: Sep 2010
Posts: 1,831
Received Thanks: 786
Statisch linken, oder die .dlls beim verbreiten mitgeben.
.SkyneT. is offline  
Old 08/24/2012, 23:18   #4


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
Quote:
Habe dann herausgefunden, dass man dafür die Redistributable benötigt (was hauptsächlich allerdings nur Leute installiert haben, die auch mit Visual Studio oder derartigem arbeiten).
Nein, viele haben sie schon installiert, da auch viele andere Programme sie benötigen und sie deshalb direkt im Setup mitbringen.

1. die msvcXXXd.dll Dateien sind Debug Dateien...vielleicht mal als Release kompilieren?
2. Wenn man die MSVC Redists statisch linkt, werden auch keine Dlls benötigt. Wenn du dann nicht sonst irgendwelche XP/Vista/7 spezifischen Funktionen nutzt, sollte das Programm auf jedem neueren NT System laufen.

Für völlig andere Plattformen (zb. UNIX) musst du neu kompilieren und dementsprechend muss natürlich auch der Code portierbar sein.
MrSm!th is offline  
Old 08/25/2012, 11:36   #5
 
elite*gold: 0
Join Date: May 2012
Posts: 23
Received Thanks: 1
Quote:
Damit ein Programm auf verschiedenen Platformen läuft musst du es für jede Platform einzeln kompilieren - unter Platformen verstehe ich Windows, Linux, Mac, etc. -
Meine Frage hierzu wäre wie ich die Programme für die einzelnen betriebssysteme kompilier :P Ist ja nicht so, dass in den Konfigurationen angegeben wird für welches betriebssystem man das Programm kompilieren möchte. Zumindest hab ich die Option noch nicht gefunden
Quote:
Nein, viele haben sie schon installiert, da auch viele andere Programme sie benötigen und sie deshalb direkt im Setup mitbringen.
Dann haben sie viele installiert. Für mich aber noch zu wenige ^^
Quote:
1. die msvcXXXd.dll Dateien sind Debug Dateien...vielleicht mal als Release kompilieren?
Jop... zumindest habe ich beide kompiliert und das Programm aus dem Release Ordner entnommen.
Quote:
2. Wenn man die MSVC Redists statisch linkt, werden auch keine Dlls benötigt. Wenn du dann nicht sonst irgendwelche XP/Vista/7 spezifischen Funktionen nutzt, sollte das Programm auf jedem neueren NT System laufen.
Das Programm war statisch verlinkt und bestand eigentlich nur aus einer Textausgabe in der Konsole.
-Epitaph- is offline  
Old 08/25/2012, 12:43   #6
 
elite*gold: 0
Join Date: May 2011
Posts: 30
Received Thanks: 7
Quote:
Originally Posted by -Epitaph- View Post
Meine Frage hierzu wäre wie ich die Programme für die einzelnen betriebssysteme kompilier :P Ist ja nicht so, dass in den Konfigurationen angegeben wird für welches betriebssystem man das Programm kompilieren möchte. Zumindest hab ich die Option noch nicht gefunden
Also soweit ich weiß gibt es zwei Möglichkeiten ein Programm für ein anderes Betriebssystem zu kompilieren. 1. Du benutzt einen Cross-Compiler - was unter Umständen ziemlich kompliziert und fehleranfällig sein kann - oder 2. du installierst dir das Zielsystem z. B. Ubuntu (Linux) auf einen Computer oder eine virtuelle Maschine und kompilierst dann dort mit z. B. MinGW dein Programm.

Bei beiden Wegen musst du aber darauf achten, dass die Librarys, die dein Programm nutzt für beide Platformen erhältlich sind. Des Weiteren kannst du mithilfe der 2. Möglichkeit das Programm gleich testen und schauen wie es sich auf dem anderen Betriebssystem verhält.

Willst du aber komplett Platformunabhängig coden, dann musst du platformunabhängige Librarys verwenden, das heißt auch keine Win32-API, MFC oder dergleichen. Und den Header "Windows.h" kannst du gleich aus den Projekten entfernen, die auf mehreren Platformen laufen sollen.

Da ich mich mit Cross-Compilern nicht wirklich auskenne, weil ich die nie wirklich benutzt hab, kann ich dir in dem Bereich nicht weiterhelfen.
AkiraSoul is offline  
Thanks
1 User
Old 08/25/2012, 13:51   #7


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,904
Received Thanks: 25,394
Wenn dir das immer noch zu wenige sind, liefer sie halt selbst mit aus. Oder linke wirklich statisch, aufgrund deiner Fehlerbeschreibung ist zu erkennen, dass du das nicht getan hast.
MrSm!th is offline  
Old 08/25/2012, 14:00   #8
 
elite*gold: 0
Join Date: May 2012
Posts: 23
Received Thanks: 1
Quote:
Originally Posted by MrSm!th View Post
Wenn dir das immer noch zu wenige sind, liefer sie halt selbst mit aus. Oder linke wirklich statisch, aufgrund deiner Fehlerbeschreibung ist zu erkennen, dass du das nicht getan hast.
->
Quote:
Habe ebenfalls herausgefunden, dass man in den Kompilierkonfigurationen das kompilieren so einstellen kann, dass die "debug-dll" nicht benötigt wird.
Jop werd meine Programme dann wohl statisch verlinken.
Das mit den .ddl's hab ich ja noch selber gelöst... wusste nur nicht, dass das "statisch verlinken" heißt, wie ich erst aus euren posts herauslesen konnte
Den einzigen Fehler den ich dann nurnoch hatte, war dass das Programm nciht auf Win XP laufen wollte weils anscheinend keine Win32 anwendung oder so war... genau Fehlermeldung weiß ich leider nicht mehr
-Epitaph- is offline  
Reply


Similar Threads Similar Threads
Keys für Viren Programme und Speed Programme!! Und mehr!!
08/20/2012 - Trading - 3 Replies
Hallo ich verkaufe Keys für die Programme und mehr. -TuneUp 2011 -TuneUp 2012 -McAffee 2012 -AntiVir -Norten Internet Security 2012 -Norten Internet Security 2013 -Microsoft Office (Alle Versionen) -WakefieldSoft (Alle Versionen)
Kompilieren der Source
01/07/2012 - Flyff Private Server - 2 Replies
Moin Leute, habe es nun geschafft meine Source zu kompilieren und so, aber der Datenbank Server schmiert immer ab bzw. startet erst garnicht, sondern weist die Meldung "Cannot read inifile bla bla" auf. Woran liegt es? :)
Kompilieren Error
11/23/2011 - WoW Private Server - 1 Replies
Hallo Ich bekomme bei jeden TrinityCore den gleichen fehler beim kompilieren. Der kommt bei 7 %, der sieht so aus: Building CXX object src/server/shared/CMakeFiles/shared_pch_dephelp.di r/s hared_pch_dephelp.cxx.o In file included from /home/trinity/TrinityCore/src/server/shared/Thread ing/Lock ...
[Question] Neuz Kompilieren
05/07/2011 - Flyff Private Server - 3 Replies
hey E*PvPers ich wüsste gerne wie man die neuz kompiliert. bin da noch recht neu in der szene. also wenn ich die neuz.cpp öffne ...was muss ich dann machen? bitte jezt nicht wieso sowas wie "n00b" oder "wenn du das nicht kannst dann bruachst dus garnicht erst versuchen" und son kram. könnt ihr euch sparen, denn ich will mich erstmal in ruhe da einfinden.
[VB]Kompilieren
06/19/2010 - .NET Languages - 6 Replies
Moin, kann mir jemand erklären wie ich in VB 2010 Express mein Projekt in eine .exe Kompilieren kann? Die Exe sollte jeder benutzen können. Gruß Drew



All times are GMT +2. The time now is 04:22.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.