begin process at 2012 02 12 19:12:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Divers

 > 

Portabilité et environnements


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Portabilité et environnements

jeudi 17 juillet 2008 à 09:34:37 | Portabilité et environnements

mogwai93

Bonjour

Je voudrais savoir ce qu'il en est à propos des codes "portables" :
le même source qui peut fonctionner sur plusieurs environnements (Windows, Linux, ...)

Est-ce qu'il est obligatoire d'installer un compilateur dans chaque environnement ou
peut-on à partir d'un environnement générer l'exécutable de l'environnement de son choix ?

exemple :
on est sous Windows
on a codé un code sensé fonctionner sur plusieurs environnements (avec une lib existante sur plusieurs environnement) et à la compilation, on désire obtenir l'executable Linux  (que l'on ne pourra tester que dans un environnement linux)


Merci
jeudi 17 juillet 2008 à 10:17:57 | Re : Portabilité et environnements

_Jonathan

J'ai déja vu l'inverse : sous Linux, on génère un exe pour Windows.
Cela s'appelle du cross compiler (compilateur croisé). Il faut pour cela utiliser Wine.
Tu as un exemple utilisant Qt ici (http://doc.qtfr.org/post/2007/04/10/Cross-Compilation-Native-dapplication-Qt-depuis-Linux).
Mais tu devras installer un compilo Windows et le faire tourner avec Linux.
jeudi 17 juillet 2008 à 16:23:09 | Re : Portabilité et environnements

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

Sous Windows, le fait que l'on retrouve toujours les mêmes fonctions dans les même dll de l'OS (CreateWindow dans user32.dll, GetCommandLineA dans kernel32.dll...) garantit la compatibilité au niveau binaire. On peut compiler sous XP et exécuter le binaire sous Vista sans trop de problèmes en général.

Je me suis laissé dire que sous Linux, les binaires était moins portables que sous Windows. Je n'ai jamais trop saisi le système de librairies telles qu'elle sont utilisé sous Linux, où les .so (dll sous Linux) doivent être dans la bonne version (On m'a toujours dit qu'un exe qui veut toto.so en version 1.2 ne se satisfait pas de toto.so en version 1.3) Les infos données par la command ld font assez peur.

Philosophiquement, les Linux et Unix sont plus orienté compatibilité au niveau source (Pour ce qui est du C tout du moins). Les sources en C compilent plutôt bien sur les unix, linux, mac et quelques OS propriétaires. Par contre, porter ces sources sous Windows peut poser problème du fait de l'inclusion de header absent sous Windows (signal.h, tout ce qui est communication inter process, thread...). De même, on ne peut pas (A part en regardant du côté de Wine) espérer compiler un source faisant une include de windows.h sous Linux.

En gros pour faire du source portable faut se limiter aux includes des fichiers de cette page (Sans le c devant).
Ce qui limite beaucoup...
Ou alors profiter d'une librairie portable (GTK/GTK+, QT, wxWidgets...) Mais faut qu'elle soit installée sur le PC cible, ou la fournir.
jeudi 17 juillet 2008 à 16:36:27 | Re : Portabilité et environnements

rt15

Membre Club Administrateur CodeS-SourceS
Ah zut, je voulais dire ldd, pas ld. Ld à l'air d'être le loader.
jeudi 17 juillet 2008 à 19:03:32 | Re : Portabilité et environnements

mogwai93

c'est + le côté windows / linux qui m'interesse pour le moment

pour windows / windows : j'ai déjà testé
à part quelques API qui ne fonctionnent pas sur 9x/Me et d'autres qui ne fonctionnent que sur Vista
jusque là je n'ai pas encore rencontré de soucis


Je commence à m'intéresser à Linux, donc je voulais voir du côté de GTK ou QT (pas encore fait le choix)
et je n'ai pas trop envie d'avoir plusieurs sources pour le même programme (ou au moins, le moins de différence possible)
C'est surtout la portabilité des sources (plutot que du binaire) qui m'intéresse


Merci pour les liens, je vais commencer à réfléchir dessus 
jeudi 17 juillet 2008 à 19:30:54 | Re : Portabilité et environnements

_Jonathan

Ouais, pour Linux, il te faudra compiler ton programme pour chaque distrib... Or, supposons, et cela doit être le cas, que ton code est multi-plateforme, donc compilable sur la plupart des Unix, l'utilisateur Linuxien, utilisant son gestionnaire de paquet favori, telecharge le code source, et exécute les commandes de base, à savoir : « configure » et ensuite « make && make install ».
Voili voila, monsieur Linux dispose de ton programme.

Pour ce qui est des dépendances, c'est le gestionnaire de paquet qui s'en occupe...rien à ajouter sur ce point.

Ensuite, Gtk,Qt,WxWidget,... il y en a plein. A toi de faire ton choix, mais tous ces frameworks existent sous Unix et sous Windows...Ce n'est qu'une question de langage (c ou c++ entre autres). La source sera protable...si tu codes proprement...


Cette discussion est classée dans : linux, environnement, fonctionner, portabilité, environnements


Répondre à ce message

Sujets en rapport avec ce message

Variables d'environnements [ par luhtor ] Bonjour,Je cherche un moyen de récupérer la valeur des variables d'environnement d'un autre processus. Il y a bien les fonctions getenv et putenv, mai Portabilité [ par Arnauti ] Bonjour, j'ai réalisé un petit programme sur l'algorithme d'Euclide. Jusque là tout va bien. Cependant, j'ai un probleme de portabilité windows/linux Variables d'environnement linux [ par kgonline ] Bonjour tout le monde, Je souhaiterai savoir comment utiliser des variables d'environnement (avec setenv et getenv) pour envoyer et recevoir des info Pour windows, les APIs mais pour LINUX c'est quoi? [ par ndubien ] Bonjour,Je me pose une question que je pense interressante :Sachant que les APIs sont spécifiques à Windows.Quel est l'équivalent d'une API pour Linu adsl [ par lilington ] bonjour tout le mondeje suis dans mes premier pas linux, en faite je commence tout le temps mais me decourage vide de linux cette fois je compte y all Morphing sous Linux [ par lamliki ] Bonsoir.J'aimerai créer un logiciel de morphing d'image, cependant je ne sais comment y procéder ni comment commencer.J'ai opté pour GTK+, mais je che pthread sous Linux ... Ouiiiin... [ par Defaite ] Bonjour à tous.Je suis actuellement sous WinXP et Ubuntu 6.10 et j'utilise Code::blocks pour developper un programme multi-threads. Ce programme march Connexion réseau à une base Access [ par Lucinda000 ] Bonjour,Je vous expose mon problème. J'ai deux PC : un Linux et un Windows. Sur le PC windows, j'ai une base Access que je souhaite exploiter. Ne pouv Problème sous linux [ par Etoiline ] Je suis trop blasée : j'avais commencé un programme avec Dev c++ et il fonctionnait mais à la fac on doit le faire sous linux et là................... completion de code avec kevelop [ par lilington ] salut tout le mondetoujours dans ma migration progressive vers linux (fedora 5) j'ai commencer un peu avec les sockets. cependant comme avec ms visual


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales