la compilation des applications de c afin qu'ils puissent travailler sur d'autres ordinateurs aussi bien

StackOverflow https://stackoverflow.com/questions/534183

Question

J'ai donc cette application très simplement SDL je veux être en mesure de passer à mon ami sans lui avoir téléchargé un tas de paquets SDL.

comment puis-je aller à ce sujet? On m'a dit d'utiliser cette ligne pour compiler: (Notez que j'utilise linux ubuntu et ainsi que mon ami, et que cette application compile, et fonctionne sans les options « -Wl, -Bstatic » très bien.)

    g++ test-sdl.cpp -o test-sdl -Wl,-Bstatic -lSDL_image -lSDL

Mais je reçois cette erreur:

    /usr/bin/ld: cannot find -lgcc_s  
    collect2: ld returned 1 exit status

pourquoi je reçois cette erreur? Comment je le répare? dois-je même de le faire de cette façon? Y at-il une manière différente / plus facile / alternative?

Suis-je demander tant en voulant sauver mon ami les tracas de téléchargement des paquets, il utilisera probablement jamais de toute façon?

Merci.

Était-ce utile?

La solution

À long terme, votre meilleur pari serait de savoir comment construire .deb et la gestion des paquets de système de votre ami peut prendre soin d'installer toutes les dépendances nécessaires. Si vous souhaitez distribuer les paquets plus largement, en utilisant le système d'emballage natif de la plate-forme comme prévu et vous permettra d'économiser vos utilisateurs beaucoup de maux de tête.

Jetez un coup d'oeil au guide d'Ubuntu et pbuilder .

Personnellement, j'ai appris comment faire pour mes propres projets (sur Debian) de Martin Krafft livre Debian , et trouver en utilisant yada rationalise considérablement le processus.

Autres conseils

Vous devez vous débarrasser de l'-B, je pense que (cela change le chemin de recherche, voir l'homme g ++, et vous pouvez donc ne trouvez pas vos bibliothèques plus).

Le commutateur que vous vouliez dire est -static, sans B.

Modifier en réponse aux commentaires: désolé, qui était incomplète. Au lieu de cela, remplacer tous « -Wl, -Bstatic » avec juste « -static ».

Comme l'a écrit codelogic, -static n'est pas une option à l'éditeur de liens (ce qui implique -Wl).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top