Question

Si j'ai Code compilé sous Solaris 8 et 10 et que vous avez maintenant un fournisseur qui veut utiliser mon bac / exe sous Linux.Pourrait-il y avoir des problèmes de compatibilité?

Je suis sûr que je devrais avoir besoin de compiler / relier sous Linux OS pour qu'il fonctionne à 100%, mais je voulais juste savoir si quelqu'un peut me donner la ventilation de la raison pour laquelle elle ne fonctionnerait pas sur Linux, même si l'EXE aTout et il n'y a rien de dynamique à ce sujet, comme cela ne devrait pas avoir besoin de quoi que ce soit encore pour le courir.Sauf si nous parlons d'exécution Libs, que s'il y a une inadéquation pourrait causer l'échec de l'EXE.

Était-ce utile?

La solution

Vous devez recompiler votre application sur Linux.

Linux est un temps d'exécution complètement différent par rapport à Solaris.Même si vous avez compilé votre application statique, il y a les appels d'interface / système au noyau qui diffèrent parmi ces deux systèmes d'exploitation.L'architecture du processeur pourrait également être différente, par ex.SPARC vs x86.

Support à la fois Solaris et Linux la plupart des API standard C et POSIX, donc si vous n'avez pas utilisé d'API exclusivement à Solaris, la recompilation de Linux n'est souvent pas si grosse - mais vous devez tout tester tout à fait.Soyez conscient de tout Endianess et potentiel 64 bits VS 32 bits.

Autres conseils

D'autres choses que je pense ne permettront pas à votre Solaris binaire de fonctionner sous Linux hors de la boîte sont les suivantes:

  1. L'architecture matérielle:
    1.1 Solaris fonctionne généralement sur ses propres machines SPARC, en particulier 8 à 10, peut également fonctionner sur des architectures d'Intel;
    1.2 Linux fonctionne généralement sur des machines Intel (bien qu'elle puisse fonctionner sur des machines SPARC).

  2. Les compilateurs:
    2.1 Solaris 8 utilise les compilateurs de Sun (atelier Sun 6+) et la mise en œuvre de la bibliothèque standard (vous aurez donc des noms de bibliothèque différents, des incompatibilités abi et ainsi de suite).Solaris 10 vient en fait avec GCC mais vous n'utilisez probablement pas (je rassemble votre bâtiment sur Solaris 8 uniquement);
    2.2 Linux utilise G ++, identique à celle ci-dessus pour les noms de bibliothèque, les incompatibilités abi et ainsi de suite.

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