IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Exécution d'un programme compilé sur diverses machines


Sujet :

Lazarus Pascal

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    CURIEUX
    Inscrit en
    Juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : CURIEUX

    Informations forums :
    Inscription : Juillet 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Exécution d'un programme compilé sur diverses machines
    Bonjour à vous,

    j'ai 2 questions à vous soumettre :

    - comment exécuter un programme réalisé avec Lazarus sur ma machine (Ubuntu 12.04 LTS) et l'exécuter sur une autre machine également sous Ubuntu mais n'ayant pas installé Lazarus, Free Pascal ? Simplement : comment distribuer mes programmes sur d'autres machines Debian ?
    - que faire pour compiler un programme écrit avec Lazarus sous Ubuntu et l'exécuter sur une ou diverses versions de Windows ?

    Bien des questions ;-)

    Merci pour vos réponses.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 668
    Points : 10 673
    Points
    10 673
    Par défaut
    Bonjour, je passe pas ici pour donner 2-3 indications pas super précises mais utiles

    Je m'appuies sur cette page wiki
    Lazarus me semble cool : un IDE multi -plateforme et il génère un exécutable.

    Donc, dans un contexte Linux <-> Linux, il faut trouver l'exécutable, et le tester sur l'autre machine.
    Sous Linux, un exécutable n'a pas d'extension (<- au cas où tu penses chercher les fichiers avec l'extension exe)

    Mais cette méthode risque de ne pas fonctionner à cause des dépendances de l'exécutable (ce sont des librairies, les fichiers .a ou .so)
    Dans ce cas, il faut compiler en statique: il faut avoir un exécutable avec tout dedans, c'est gros mais il y a tout.
    D'ailleurs, en règle générale, les librairies/ fichiers .so ne sont pas statiques, les librairies/ fichiers .a sont statiques
    Est-ce Lazarus le permet? je ne le sais pas
    Mais pour compiler en statique il faut que les dépendances soient statiques: est-ce que tu as toutes les dépendances en statiques?



    Donc la solution rapide à pas chère: tu installes Lazarus sur la deuxième machine et avec un tarball tu passes d'une machine à l'autre

    Dans une solution intermédiaire, il faut, sur la deuxième machine,
    • Soit installer toutes les dépendances pour l'exécutable (en version utilisateur). Passer par le gestionnaire de packages est le mieux.
    • Soit installer un compilateur Free Pascal (tu n'as pas besoin de l'IDE Lazarus) et avec un tarball + un make tu recompiles le tout.



    Par contre avec le compilateur Free Pascal, il te faudra quand même installer les librairies/ dépendances (en version développeur et sûrement utilisateur) pour ton projet ou

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    CURIEUX
    Inscrit en
    Juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : CURIEUX

    Informations forums :
    Inscription : Juillet 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci à toi pour toutes ces explications, cela m'aide à mieux comprendre le processus.
    Je suis un convaincu de l'utilisation de Linux et de l'open source, mais il faut bien reconnaître qu'à la belle époque de Delphi, il suffisait de compiler et hop exécuter... sur n'importe quelle machine sous Windows.

    Merci beaucoup.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Everything
    Inscrit en
    Décembre 2013
    Messages
    361
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations professionnelles :
    Activité : Everything

    Informations forums :
    Inscription : Décembre 2013
    Messages : 361
    Points : 1 277
    Points
    1 277
    Par défaut
    Vous vous méprenez messieurs, c'est pareil avec Lazarus. Une foie le code compilé et la production d'un exécutable, celui-ci sera directement exécutable sur une autre machine, particulièrement si c'est la même distribution.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    CURIEUX
    Inscrit en
    Juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : CURIEUX

    Informations forums :
    Inscription : Juillet 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bon à savoir, merci Jiji66.

  6. #6
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 504
    Points : 10 229
    Points
    10 229
    Par défaut
    Citation Envoyé par Jiji66 Voir le message
    Vous vous méprenez messieurs, c'est pareil avec Lazarus. Une foie le code compilé et la production d'un exécutable, celui-ci sera directement exécutable sur une autre machine, particulièrement si c'est la même distribution.
    Et si c'est pas la même distribution ?

  7. #7
    Membre éprouvé
    Homme Profil pro
    Everything
    Inscrit en
    Décembre 2013
    Messages
    361
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations professionnelles :
    Activité : Everything

    Informations forums :
    Inscription : Décembre 2013
    Messages : 361
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par Jon Shannow Voir le message
    Et si c'est pas la même distribution ?
    Si le programme est compile en 64 bits x86, il aura bien du mal pour tourner sur une distribution 32 bits arm. Si le programme utilise un environnement X11, il aura du mal a fonctionner si ce n'est pas installe sur l'autre distribution.

    Maintenant et de maniere generale si le programme est compile en 64 bits x86 pour etre utilise avec qt4, il est tres probable qu'il tournera sur n'importe quelle distribution 64 bits x86 avec qt4 en place.

  8. #8
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 504
    Points : 10 229
    Points
    10 229
    Par défaut
    Merci.

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    CURIEUX
    Inscrit en
    Juillet 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : CURIEUX

    Informations forums :
    Inscription : Juillet 2014
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Oui mais...
    Merci pour vos explications, mais il me reste encore une dernière question sur le sujet.
    J'ai déjà auparavant installé Lazarus sur ma machine et créé quelques petits programmes simples. J'ai désinstallé Lazarus et lorsque je tente d'exécuter mes petits programmes compilés, rien ne se passe. Il faut donc, absolument, installer Lazarus pour faire fonctionner mes programmes ?

    Bien à vous.

  10. #10
    Membre éprouvé
    Homme Profil pro
    Everything
    Inscrit en
    Décembre 2013
    Messages
    361
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations professionnelles :
    Activité : Everything

    Informations forums :
    Inscription : Décembre 2013
    Messages : 361
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par JanPat Voir le message
    Merci pour vos explications, mais il me reste encore une dernière question sur le sujet.
    J'ai déjà auparavant installé Lazarus sur ma machine et créé quelques petits programmes simples. J'ai désinstallé Lazarus et lorsque je tente d'exécuter mes petits programmes compilés, rien ne se passe. Il faut donc, absolument, installer Lazarus pour faire fonctionner mes programmes ?

    Bien à vous.
    En installation standard, L'exécutable est parfaitement autonome et il n'est pas nécessaire d'avoir une installation préalable d'un Lazarus pour que L'exécutable puisse fonctionner.

    Il serait intéressant que tu donnes plus de détails sur ton OS pour voir ou peut-être ton problème.

  11. #11
    Membre éprouvé
    Homme Profil pro
    Everything
    Inscrit en
    Décembre 2013
    Messages
    361
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Italie

    Informations professionnelles :
    Activité : Everything

    Informations forums :
    Inscription : Décembre 2013
    Messages : 361
    Points : 1 277
    Points
    1 277
    Par défaut
    Je viens de relire la page des fonctionalités de Lazarus :
    http://www.lazarus.freepascal.org/

    Et il y est écrit ceci :
    Build native binaries. Distribute your binaries without dependencies on any runtime environment. [3]
    [3] Linux/BSD applications may depend on GTK2 or alternatively QT.

    Ce qui peut éventuellement se traduire par :
    Construit des exécutables natifs. Distribuez vos exécutables sans dépendences d'aucun environnement d'exécution.
    [3] Les applications Linux/BSD peuvent dépendrent de GTK2 ou alternativement QT.

    le "runtime environment" fait référence à une machine JAVA préinstallée ou aux horribles VBRUN de Visual Basic.
    Comme sous Linux l'environnement graphique est une option, si l'on écrit un programme qui utilise des resoources graphiques il faudra bien sur installer GTK2 ou Qt. C'est l'un ou l'autre et pas les deux.

    Voila, j'espère que c'est suffisamnet clair

  12. #12
    Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2012
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 18
    Points : 53
    Points
    53
    Par défaut
    Bonsoir,

    Personnellement, je construit des programme sous lazarus depuis longtemps. (Et ceux pour Linux/Windows)

    Des règles sont a respecter :
    - Dépendance et utilisation des bibliothèques.
    Effectivement, quoiqu'il en soit, il faut savoir de quoi a besoin votre application pour tourner. Et tester au démarrage par des Try Except ...
    - Les limites des composants
    Et oui, dur loi du road map. Il faut se renseigné si le composant est supporté par la plateforme cible, surtout en cross plateforme
    - Stocké les paquets, so ou dll, supplémentaire nécessaire au programme pour s'exécuter. (Vérifier les mise à jour)
    - Faire une documentation claire et concise pour l'installation et la maintenance du programme ceux dans les plateformes cibles.

    Enfin, faire le plus de testes possible pour s'assurer du bon fonctionnement.

    Prenons le cas de Zeos, sous windows et linux pour MySQL aucun soucis, mais pour Microsoft SQL et Oracle une autre paire de manche.
    Et du coup, j'ai fait un fichier .ini utilisé sous Linux et Windows. Ce fichier lit le système et les déclaration. Et quand une unité viens a manquer, le système utilise lNet pour télécharger les paquets pour les installer automatiquement.

    Du coup, au démarrage j'ai qu'un exécutable et un fichier ini.

    Cordialement.
    F.THERET

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/12/2008, 08h57
  2. Exécuter un programme java sur plusieurs machine
    Par sinfos dans le forum Langage
    Réponses: 4
    Dernier message: 23/09/2008, 11h14
  3. Compiler sur plusieurs machines
    Par alen dans le forum Visual C++
    Réponses: 8
    Dernier message: 04/01/2008, 14h08
  4. Réponses: 0
    Dernier message: 07/12/2007, 13h12
  5. exécution d'un programme compilé sur une autre machine
    Par haorua1983 dans le forum Administration système
    Réponses: 4
    Dernier message: 09/02/2007, 17h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo