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 :

Question pour un outil multi-plateformes [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut Question pour un outil multi-plateformes
    Bonjour à tous

    J'ai une question: je suis novice sur Lazarus, et on vient de me conseiller Lazarus pour un outil multi-plateforme que je veux développer.

    En parcourant rapidement la page du projet, je me demande si on peut générer des applis pour les différentes plateformes à partir d'une seule (c'est à dire si par exemple du projet Linux on peut générer un exécutable Windows), ou si il faut copier les projets d'une plateforme à l'autre pour les générer....


    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 173
    Billets dans le blog
    9
    Par défaut
    Bonjour !

    Le même projet sert à générer des exécutables pour toutes les plateformes. Si vous ouvrez le projet sous Linux et que vous le compilez, vous obtiendrez un exécutable Linux, etc.

    Si vous ouvrez le projet sous Linux et que vous voulez compiler pour Windows, c'est possible aussi, mais ça demande quelques efforts supplémentaires.

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    Le même projet sert à générer des exécutables pour toutes les plateformes. Si vous ouvrez le projet sous Linux et que vous le compilez, vous obtiendrez un exécutable Linux, etc.
    Oui mais ça veut dire faire les modifs dans tous les projets....


    Citation Envoyé par Roland Chastain Voir le message
    Si vous ouvrez le projet sous Linux et que vous voulez compiler pour Windows, c'est possible aussi, mais ça demande quelques efforts supplémentaires.
    C'est plus ça qui m'intéresserait, et avec MacOS aussi... Enfin toutes les plateformes possibles...

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 173
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Oui mais ça veut dire faire les modifs dans tous les projets....
    Euh, non, ça veut dire, au pire, copier le dernier état du projet d'une machine sur l'autre. Et encore, on peut même éviter cela en plaçant le projet sur une clé USB.

    Mais bon peut-être que vous avez des contraintes auxquelles je ne pense pas.

    Citation Envoyé par souviron34 Voir le message
    C'est plus ça qui m'intéresserait, et avec MacOS aussi... Enfin toutes les plateformes possibles...
    Vous trouverez des explications avec le mot-clé cross-compilation. Si je me souviens bien, c'est seulement un compilateur en plus à installer. Par contre je ne sais pas si ça marche pour MacOS.

  5. #5
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 135
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 135
    Par défaut
    Bonjour, Jean et les autres,

    Citation Envoyé par Roland Chastain Voir le message
    Vous trouverez des explications avec le mot-clé cross-compilation. Si je me souviens bien, c'est seulement un compilateur en plus à installer.
    Un jour j'ai jeté un coup d'œil à ça et l'ai trouvé bien compliqué à gérer.

    De mon point de vue de toujours newbie, je reviens deux secondes sur ma proposition dans l'autre fil de machines virtuelles car on dirait que tu n'as pas rebondi dessus -- peut-être ne connais-tu pas bien ce principe et ce "feeling" ?
    Pour moi ce n'est que du bonheur et comme une petite image vaut mieux qu'on long discours, je t'ai préparé ce montage de 1920x1200 (divisé au tiers) où l'on reconnaitra
    • dans le côté marron à gauche toute le host Debian 11.5 avec 16 Giga de mémoire, montrant un bout du Bureau avec dossiers et fichiers et faisant tourner sans aucun souci
    • en haut à gauche une machine virtuelle Windows XP SP2 32bits reconnaissable à son fond d'écran ciel bleu sur collines verdoyantes, qui sert uniquement pour ma messagerie,
    • recouverte en haut à droite par une MV Seven 64bits avec un fond d'écran noir et une fenêtre d'explorateur ouverte,
    • recouverte en bas à droite par une MV Debian 11.5 (+ ou - un clone du host) où l'on devine l'icône Lazarus avec son infobulle jaune,
    • et la dernière fenêtre en bas à gauche j'en parle + bas :

    Nom : écran.png
Affichages : 206
Taille : 116,6 Ko

    Et tout ça fonctionne allègrement et échange des fichiers grâce à un seul dossier partagé sur le host, commun à toutes les machines, host comme mv's, ce qui me permet de développer un seul programme sur le host avec les $IFDEF Cible dont je t'ai parlé ; les mv's le récupèrent ensuite (chacune son tour, hein, faut pas abuser, ) et ma foi, mises à part des microscopiques différences de rendu esthétique à régler (toujours avec ces $IFDEF Cible), tout fonctionne parfaitement bien.

    Par contre, on peut avoir des petits gags, quand on descend bas dans le matériel, que je ne m'explique pas, d'ailleurs : on voit en bas à gauche toute en marron très léger une fenêtre de terminal ouverte sur le host et dans la mv Debian à droite une autre fenêtre de terminal, ces deux terminaux exécutent la même commande $ lscpu et les résultats sont
    à gauche le host :
    Tailles des adresses: 43 bits physical, 48 bits virtual
    à droite la mv :
    Tailles des adresses: 48 bits physical, 48 bits virtual
    Ça peut déranger.

    Mais c'est compensé par le fait que tu peux faire (une fois tout bien réglé) du copier/coller d'une mv à l'autre et/ou de et vers le host, bref, à y perdre la tête et attention les sacs de nœuds, .
    Tous ceux qui ont goûté à ça le confirmeront, ça serait dommage de s'en priver.

    EDIT : oublié de préciser que chaque machine virtuelle a sa propre install de FPC/Lazarus, bien sûr. C'est la seule contrainte car, en cas de mise à jour, faut se taper toutes les machines concernées. Bah... /EDIT

    PS : ceux qui ont deux ou trois écrans seront au paradis,

  6. #6
    Membre chevronné

    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2012
    Messages : 181
    Par défaut
    Bonjour,

    Citation Envoyé par Jipété Voir le message
    Et tout ça fonctionne allègrement et échange des fichiers grâce à un seul dossier partagé sur le host, commun à toutes les machines, host comme mv's, ce qui me permet de développer un seul programme sur le host avec les $IFDEF Cible dont je t'ai parlé ; les mv's le récupèrent ensuite (chacune son tour, hein, faut pas abuser, ) et ma foi, mises à part des microscopiques différences de rendu esthétique à régler (toujours avec ces $IFDEF Cible), tout fonctionne parfaitement bien.
    J'ai essayé (host Windows 10 et vm Linux Mint) et j'ai eu droit à une magnifique exception sigseg avec certains codes pourtant très simples. Je pense que le souci vient de la configuration du projet (le fichier .lps ?) qui peut changer avec le système cible. Par exemple le moteur graphique, le processeur, le manifest, etc. Qu'en penses tu ?

    EDIT: Naturellement, le code testé est portable et dans le cas contraire, comme toi, j'ai des $IFDEF Cible qui vont bien.

    bb84000

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Roland Chastain Voir le message
    Euh, non, ça veut dire, au pire, copier le dernier état du projet d'une machine sur l'autre. Et encore, on peut même éviter cela en plaçant le projet sur une clé USB.
    Bonne idée




    Citation Envoyé par Roland Chastain Voir le message
    Vous trouverez des explications avec le mot-clé cross-compilation. Si je me souviens bien, c'est seulement un compilateur en plus à installer. Par contre je ne sais pas si ça marche pour MacOS.
    OK je vais regarder merci


    Merci à tous

    Je vais demander au client, mais je pense que je vais me tourner à faire un site , et utiliser les 2 liens indiqués plus haut pour faire les applis pour GoogleStore et AppleStore....

    Encore un grand merci à ce merveilleux forum et ses excellents participants

  8. #8
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 324
    Par défaut
    bonjour
    Citation Envoyé par souviron34 Voir le message
    Enfin toutes les plateformes possibles...
    Alors non
    existe arm, intel, android et ... , 32..64bit

    Pour lazarus, va voir le site officiel on ne change rien dans le code source (mais notre code peut parfois gérer les différences "si windows...si linux...") mais on recompile simplement
    Pour faire une application graphique (sur certaines plate-forme), il y a lazarus, python, flutter mais aussi des solutions à base de javascript (electron par exemple)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. D, Java ou C# pour du Desktop multi-plateforme ?
    Par kedare dans le forum Langages de programmation
    Réponses: 12
    Dernier message: 22/07/2008, 22h48
  2. Utiliser DotNet pour faire du multi-plateforme, bonne idée ?
    Par kedare dans le forum Framework .NET
    Réponses: 3
    Dernier message: 11/02/2008, 17h55
  3. Que choisir pour du développement Multi Plateforme : Java ou C++/Qt ?
    Par kedare dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 10/07/2007, 20h05
  4. Quel lg et IDE pour dev 1 appli multi-plateformes?
    Par Langelot dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 03/02/2005, 23h36

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