Question Puis-je déplacer mon code C exécutable compilé vers un autre ordinateur portable sans installer le package?


J'ai installé un appel de paquet libcurl, et j'ai compilé un code C à partir de ce package dans un exécutable. Donc quand je lance le code, je fais juste .thiscode

Le problème est que je veux courir .thiscode dans un autre ordinateur portable, mais cet ordinateur portable n'est pas Linux et il n'a pas libcurl installée.

Puis-je transférer thiscode via USB à un autre ordinateur portable, et cet ordinateur portable pourra-t-il exécuter le code?

Pensez-vous que cela va fonctionner?


0
2018-03-21 20:02


origine




Réponses:


Pas probable. Lorsque vous compilez du code c / c ++ sur une machine Linux, il (typiquement) forme un binaire ELF, que Windows (et mac) ne peuvent pas utiliser. Vous pouvez toutefois utiliser mingw-w64 pour effectuer une compilation croisée depuis un hôte Linux vers un binaire Windows, et vous pouvez faire des choses similaires pour la compilation croisée sur mac (mais le processus est beaucoup plus compliqué).

Ensuite vient le fait que vous mentionnez libcurl. Peut-être que vous venez de compiler la source de cela, ou vous avez écrit votre propre programme qui dépend de libcurl. Dans le premier cas, la présence de libcurl sur la machine cible n'a pas d'importance, dans ce dernier, selon que vous établissez un lien statique ou dynamicly libcurl dans le programme, vous devrez peut-être la bibliothèque appropreate (dll ou dynlib) sur la machine cible.

Quoi qu'il en soit, il est impossible de copier / coller un binaire de l'un à l'autre et de s'attendre à ce qu'il fonctionne sur des systèmes d'exploitation très différents. Vous devez donner beaucoup de prévoyance dans le processus.


1
2018-03-21 20:12