Comment puis-je compiler mes fichiers C ++ pour travailler sur toutes les distributions Linux. La machine que je vais les compiler sur est Ubuntu 10.10 p>
Si je les compile sur Ubuntu 10.10, va-t-il travailler sur d'autres distributions comme Ubuntu, Fedora, Debian, Non Debian Distros .. etc. P>
4 Réponses :
% gcc -o foo foo.c -static the resulting binary should work on most distros, given that it runs on the same architecture (64bit, 32bit, arm, mips etc).the main point is: since you do not know what can be found on the target systems in advance, you have to bundle everything you can into either the binary you are shipping or in some kind of "chrooted" environment where you deploy external libs as well (stuff that can't be linked statically) and then have some kind of a wrapper to use your deployed libs instead of the system libs.
Cela fonctionnera pour C, mais pas C ++. Voir trilithium.com/johan/2005/06/static-libstdc
Bien que @akira réponse fonctionne probablement pour votre cas, ce n'est pas la meilleure solution. La plupart des distributions Linux ont des systèmes d'emballage qui récupèrent les dépendances pour vous. P>
Si vous êtes sérieux au sujet de la rédaction de logiciels Linux qui est utilisé sur les boîtes des autres personnes, vous devrez examiner «GNU AutoTools», ce qui entraîne le "./configure && faire tous && faire installer" chose que vous aurez Courir plus d'une fois par ici! p>
Umm, le projet n'est pas open source?
@Daniel, vous seriez toujours mieux en train d'utiliser AutoTools vous-même, même si vous ne donnez pas gratuitement au code gratuitement! Sinon, vous ferez votre vie difficile lorsque les bibliothèques de votre code dépendent du changement, mais comme je l'ai dit @Akira IDEA fera probablement ce que vous voulez.
Si son projet nécessite des autotools, qui est sous la GPL, même s'il s'agit simplement de construire son logiciel avant la distribution, est-il légal pour son propre logiciel d'être sous une licence GPL-incompatible? (C'est une question sérieuse, pas de GPL flamebait.)
Si vous distribuez uniquement les fichiers binaires, oui bien sûr, il est légal. Le GPL couvre les «œuvres dérivées» qui sont prises pour signifier «couper et coller» le code source pour faire quelque chose de nouveau, ne pas utiliser un outil pour vous aider à faire autre chose. De la même manière que l'utilisation de Word ne donne pas à Microsoft Copyright sur votre roman.
à condition que vous n'utilisez que les bibliothèques répertoriées dans la base de normes Linux, une exécutable dynamique devrait être bien. P>
Pour d'autres bibliothèques, liez-vous avec des versions statiques d'entre eux ou des bibliothèques dynamiques de navire; Je préfère le premier. P>
Je recommanderais personnellement en évitant la liaison statique de la bibliothèque C, car cela empêche certaines fonctionnalités utiles fournies par le fonctionnement de celui-ci, par exemple la substance NSS .. P>
Il est beaucoup plus difficile qu'il ne devrait être, au moins pour C ++: http : //www.trilithium.com/johan/2005/06/static-libstdc/ P>