2009-08-06 8 views
7

Je sais comment utiliser g ++ et tout ça pour compiler des programmes C++. Ma question est, si j'ai du code qui dépend de diverses bibliothèques, comment puis-je le compiler dans un simple exécutable que je peux envoyer à n'importe qui. Pour cela je serais content de le garder sur os x.compiler C++ en programmes "réels"

Je voudrais savoir comment compiler un "vrai" programme pas simplement un exécutable que je peux exécuter localement. J'ai essayé googling ceci mais n'ai pas trouvé beaucoup.

Dois-je utiliser un logiciel d'installation? Je sais que dans Windows, vous pouvez créer des fichiers .exe simples qui utilisent des fichiers DLL communs.

+0

Je ne sais pas pourquoi quelqu'un a downvoted cette question. Je l'ai upvoted cependant. Semble une question très valide. – Aamir

+5

Les balises "os" et "x" ne s'unissent pas à "osx" comme par magie. Tout comme "The" "Rapist" ne s'unissent pas comme par magie pour devenir thérapeute. – Thomas

+0

+1 Jeopardy de célébrité! –

Répondre

8

Vous recherchez une "liaison statique". Cela importera tout le code nécessaire des bibliothèques dans votre exécutable. Notez que l'exécutable deviendra plus grand. Si vous utilisez des bibliothèques standard, elles doivent être présentes sur l'installation standard du système d'exploitation.

Vous devriez essayer le drapeau "-static" de g ++. L'exécution de "ldd your_executable_name" devrait afficher toutes les bibliothèques utilisées par votre exécutable (liées dynamiquement).

+2

sur os x ldd = otool -L exécutable, si quelqu'un se soucie – Ori

0

Vous pouvez utiliser l'option -s ou -static pour la liaison statique dans gcc ou g ++

3

Puisque vous parlez de Mac OS X, vous voulez probablement faire un paquet. Qt Software a un très utile deployment guide pour commencer avec ce genre d'activité.

Questions connexes