2009-08-06 8 views
7

Ich weiß, wie man g ++ und all das, um C++ - Programme zu kompilieren. Meine Frage ist, wenn ich etwas Code habe, der von verschiedenen Bibliotheken abhängt, wie kann ich es in eine einfache ausführbare Datei kompilieren, die ich jedem schicken kann. Dafür würde ich mich freuen, wenn ich es nur bei OS X behalte.compiling C++ in "echte" Programme

Ich würde gerne wissen, wie man ein "echtes" Programm kompiliert, nicht nur eine ausführbare Datei, die ich lokal ausführen kann. Ich habe versucht, dies zu googeln, aber habe nicht viel gefunden.

Muss ich die Installationssoftware verwenden? Ich weiß in Windows können Sie einige einfache .exe Sachen, die gemeinsame DLL-Dateien verwenden machen.

+0

Ich weiß nicht, warum jemand diese Frage abgelehnt hat. Ich habe es jedoch wieder aufgewertet. Scheint eine sehr gültige Frage. – Aamir

+5

Tags "os" und "x" vereinen sich nicht magisch zu "osx". Genau wie "The" "Rapist" sich nicht magisch vereinen, um ein Therapeut zu werden. – Thomas

+0

+1 Celebrity Jeopardy! –

Antwort

8

Sie suchen nach "statischer Verknüpfung". Dadurch wird der gesamte benötigte Code aus den Bibliotheken in Ihre ausführbare Datei importiert. Beachten Sie, dass die ausführbare Datei größer wird. Wenn Sie Standardbibliotheken verwenden, sollten diese bei der Standardinstallation des Betriebssystems vorhanden sein.

Sie sollten "-static" Flag von g ++ versuchen. Das Ausführen von "ldd your_executable_name" sollte alle Bibliotheken anzeigen, die Ihre ausführbare Datei verwendet (dynamisch verknüpft).

+2

auf os x ldd = otool -L ausführbar, wenn jemand interessiert – Ori

0

Sie -static oder es Option für statisch Linken in gcc oder g verwenden ++

3

Da Sie sprechen von Mac OS X, mögen Sie wahrscheinlich ein Bündel machen. Qt Software hat eine sehr nützliche deployment guide für den Einstieg in diese Art von Aktivität.