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 :

Développement multi-plateformes cibles


Sujet :

Lazarus Pascal

  1. #1
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut Développement multi-plateformes cibles
    Tout est dans le titre. En partant d'une version 32 bits de Lazarus tournant sous Win64. En effet je n'ai pas réussi à installer la version 64 bits, ce qui n'est pas gênant en soit si on peut choisir la cible.

    Seulement voilà, est-ce réellement possible avec Lazarus ?

    Quand j'essaie de choisir un OS cible différent de Win32, j'obtiens toujours la même erreur "can't find system.ppu" etc. Les chemins sont corrects, fpc a tous les fichiers cibles, mais j'ai observé que dans le lcl\units installé, par contre, il n'y avait que "i386-win32".

    Le problème vient-il de là ? Doit-on installer les autres OS cibles dont on désire se servir ? Et comment ?

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 299
    Points
    11 299
    Billets dans le blog
    6
    Par défaut
    C'est bien ce que j'avais cru comprendre : les sources doivent compiler sans (trop de) retouches pour les divers univers, mais le compilateur doit y être installé.

    Pour installer les autres OS, en VM ? Ou aller compiler chez des potes...
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Membre éprouvé
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 988
    Points
    988
    Par défaut
    Merci pour l'info.

    Bon, ben, ce sera en VM, oui, mais c'est pénible. Tant pis.

    Voilà une fonctionnalité qui serait sympa à installer. C'est d'autant plus embêtant pour Windows : on ne peut pas installer en même temps la version 64 bits et la version 32 bits, si ce que j'ai cru comprendre est vrai. Alors c'est un peu ballot de ne pas pouvoir au moins générer les deux exécutables Win32/Win64 sous Windows...

  4. #4
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 076
    Points : 1 521
    Points
    1 521
    Billets dans le blog
    5
    Par défaut
    Effectivement le principe de lazarus est développer sur une machine et compiler partout. Personnellement j'ai développé un jeu sous windows et j'ai eu juste à le compiler de nouveau sous linux pour que ça marche.
    Bon pour être tout à fait honnête ça marche pas si facilement que ça. J'ai du ajouter quelques directives de compilation et réécrire des parties de programmes complètes. Mais c'est quand même mieux que de devoir tout réécrire.
    Pour ce qui est du 64bits je dirais que si l'application tourne en 32 pourquoi se fatiguer à la compiler en 64
    Il y a des jours où j'éprouve une haine profonde envers microsoft et Apple c'est pas mieux
    Mon modeste site et mes modestes oeuvres sont
    Rémi

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par CapJack Voir le message
    Tout est dans le titre. En partant d'une version 32 bits de Lazarus tournant sous Win64. En effet je n'ai pas réussi à installer la version 64 bits, ce qui n'est pas gênant en soit si on peut choisir la cible.

    Seulement voilà, est-ce réellement possible avec Lazarus ?

    Quand j'essaie de choisir un OS cible différent de Win32, j'obtiens toujours la même erreur "can't find system.ppu" etc. Les chemins sont corrects, fpc a tous les fichiers cibles, mais j'ai observé que dans le lcl\units installé, par contre, il n'y avait que "i386-win32".

    Le problème vient-il de là ? Doit-on installer les autres OS cibles dont on désire se servir ? Et comment ?

    C'est possible, le probleme reside dans le fait que les deux version 32 & 64 bits se refere au meme repertoire pour le stockage de leur parametres, le repertoire en question est normalement situe dans AppData\local\lazarus specifique au compte utilisateur utilisé... La solution est ici :

    1/ Pour la version 32 bits : renommez le repertoire AppData\local\lazarus en AppData\local\lazarus32
    2/ Pour la version 64 bits : renommez le repertoire AppData\local\lazarus en AppData\local\lazarus64

    3/ Utilisé la commande mklink (window 7) pour creer une jonction de repertoire specifique a la version de lazarus lancé :

    Exemple de fichier BAT pour lancer lazarus 32 bit :

    junction -d Chemin & Rep utilisateur \AppData\Local\lazarus
    mklink /J Chemin & Rep utilisateur \AppData\Local\lazarus Chemin & Rep utilisateur \AppData\Local\lazarus32
    Chemin lazarus32\startlazarus.exe

    Sauvegardez par exemple sous le nom de lazarus32.bat

    Faire la meme chose pour la version 64 bits :

    junction -d Chemin & Rep utilisateur \AppData\Local\lazarus
    mklink /J Chemin & Rep utilisateur \AppData\Local\lazarus Chemin & Rep utilisateur \AppData\Local\lazarus64
    Chemin lazarus64\startlazarus.exe

    Sauvegardez par exemple sous le nom de lazarus64.bat

    Il faut editer adapter les chemins a votre systeme, par exemple en ce me concerne, lazarus 32 bit est installé dans d:\lazarus32 et la version 64 bits dans d:\lazarus64...

    Note : la commande junction se trouve dans le site de Windows sysinternals et est necessaire pour enlever desactiver la jonction precedement cree...

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 27
    Points
    27
    Par défaut
    Je viens de me relire et je penses ne pas avoir ete assez clair sur la cohabitation de differentes versions de lazarus, je viens d'installer la version 1.2.4 32 bits aupres de la version 1.0.10 x32 et 1.0.10 x64 et je peux switcher entres ces version sans problemes, voici les etapes :

    Supposons l'installation de la version 1.2.4 x32 de lazarus...

    1/ procurez vous l'utilitaire junction qui peut se telecharger dans le site de Windows sysinternals et est necessaire pour enlever desactiver la jonction precedement cree...

    2/ j'ai installe dans une vm pour ne pas polluer le systeme principal a un emplacement specifique, par exemple d:\lazarus\x32v124. ensuite j'ai zippé le repertoire x32v124...

    3/ apres dezippage de l'archive dans le systeme reel et au meme emplacement (important, sinon ca ne marche pas), je verifie d'abords que le repertoire lazarus (important) n'existe pas dans ..\AppData\Local, je lance le programme startlazarus.exe, je fais un test de compilation, si reussi, je quitte...

    4/ le repertoire lazarus devrait avoir ete cree dans C:\Users\jack\AppData\Local\lazarus, je le renomme en lazarusx32v124

    5/ j'utilise la commande mklink (window) pour creer une jonction de repertoire specifique a la version de lazarus lancé :

    Exemple de fichier BAT :

    junction -d C:\Users\jack\AppData\Local\lazarus
    mklink /J C:\Users\jack\AppData\Local\lazarus C:\Users\jack\AppData\Local\lazarusx32v124
    start d:\lazarus\x32v124\startlazarus.exe
    exit

    Sauvegardez par exemple sous le nom de lazarusx32v124.bat, creez un raccourcis et renomez par exemple en :

    Lancez lazarus x32 version 1.2.4

    Bon, vous devriez avoir compris le principe...

    note : lazarus installe apparement une dll dans le repertoire systeme de windows nomme Qt4Pas5.dll probablement en rapport avec Qt, si vous l'utiliez, copiez la dll dans windows...

  7. #7
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 469
    Points : 1 100
    Points
    1 100
    Par défaut
    Bonjour,

    Merci aux contributeurs qui nous expliquent comment installer plusieurs versions et cross-compiler. C'est certainement utile.

    Cependant, si vous n'avez pas la machine dans l'OS cible (réelle ou virtuelle), comment tester sérieusement vos applications ?

    Cela me parait pourtant indispensable, il survient bien des surprises en changeant d'environnement, j'en sais quelque chose.

    Le slogan devrait être complété : développer sur une machine, compiler partout et TESTER PARTOUT !
    Cordialement,
    Tintinux

    Initiateur de Gestinux, une comptabilité gestion open-source, pour Linux, Windows et Mac OS.
    Une version stable et une autre en développement, avec Lazarus : vous pouvez aider à la tester, la traduire et à la développer.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 16
    Points : 27
    Points
    27
    Par défaut
    Bonjour Tintinux,

    lazarus avance doucement mais surement, chaque version apporte de nouvelles fonctionnalitees, le projet est de plus en plus viable notement pour le developpement multipateforme, mieux vaut dans ce cas utiliser uniquement les fonctions integrees, avec un peu de rigueur ca doit pouvoir se gerer, mais il n'y a pas de miracle, a ce niveau il vaut mieux avoir des vms avec les systemes cibles (il est facile de se procurer les anciennes version de windows a petit prix), j'utilise perso vmplayer pour les tests des programmes, par contre pour macos, je n'ai pas de solution vu la licence de l'os, difficile de l'installer dans une vm (possible mais pas legal), faudrait t'il acheter un mac, la question se pose, est ce que ca vaut le coup pour un projet opensource, peut etre que oui pour un projet commercial... il est vrai que les utilisateur de macos sont plus acheteurs de logiciels que les autres...
    cela dit la doc de lazarus / freepascal est clairement insuffisante, chaque fonction devrait etre suivie d'un exemple pratique, le tout condense dans un seul seul fichier pdf ou chm...

  9. #9
    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
    Bonjour,

    Compilation multiplateforme

    N'oubliez pas une chose, vous parler de Lazarus, mais en faite le projet d'origine est FreePascal
    Lazarus est l'enrichissement du FreePascal.

    Donc, souvent on s'énerve car on ne pense pense pas assez a cette fondamental.
    Du coup, pour la compilation Multiplateforme, on peut le faire directement via le compilateur FPC.
    Et si vous regardez dans les bibliothèque FPC, vous verrez ceci

    Nom : Capture.PNG
Affichages : 335
Taille : 3,3 Ko

    En approfondissant, on se retrouve a compiler en ligne de commande pour certaines plateforme comme android.
    J'ai moi-même passé beaucoup de temps a comprendre le fonctionnement du compilateur.
    Du coup, pour facilité l'accès, il existe des projets tel que lazToApk et Laz4Android. (Merci à leur contributeur)

    Ne l'oublions pas Android est a sa racine un Linux soir en armel, soit en Atom.
    Donc quand on compile on le fait en .SO (eq. DLL pour windows)

    Donc, pour Debian/Keops/RedHat/Suse/... et MacOs, il est tout à possible aussi de leur faire.
    Ce qui devient compliqué avec Linux, ce sont les bibliothèques.
    C'est à dire d'une version à une autre, mise à jour, on se retrouve à reprendre le code et le modifier.
    Mais dans la majorité des cas se sont de grosse mise à jour pour amener de nouvelle fonctionnalité.


    Pour la documentation

    Il est vrai, lorsque l'on commence c'est déroutant de ne pas avoir de documentation.
    J'utilise principalement :
    http://www.freepascal.org/docs-html/...s/index-8.html
    Qui regroupe les principales fonctions.

    Mais pour de ce qui est de Lazarus :
    2 possibilités :
    - Regarder les sources (ref. les raccourcies Lazarus partique pour naviguer rapidement dans le code)
    - Aller retrouver les informations sur les sites des mainteneurs de composants. Quand il existe.

    Depuis 2010, j'ai remarqué des améliorations dans les documentations et les solutions.

    Cldt.
    Iwoks

  10. #10
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 469
    Points : 1 100
    Points
    1 100
    Par défaut
    Bonjour

    C'est sûrement une bonne idée de n'utiliser que fpc pour faire de la compilation croisée, ça doit simplifier les problèmes et aider à comprendre.

    J'utilise d'ailleurs la compilation en mode ligne avec succès, pour produire mes versions finales, mais seulement pour le système installé.

    Je bute sur la manière d'obtenir les dossiers que tu indiques sous units (par exemple i386-win32 sur un système Linux) ?

    D'après le wiki, après avoir installé les sources avec le paquet des dernières versions stables de fpc et lazarus, il faudrait peut-être faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ make all OS_TARGET=win32 CPU_TARGET=i386
    make: *** Pas de règle pour fabriquer la cible « all ». Arrêt.
    Est-ce bien la bonne commande ? Que me manque-t-il ?
    Cordialement,
    Tintinux

    Initiateur de Gestinux, une comptabilité gestion open-source, pour Linux, Windows et Mac OS.
    Une version stable et une autre en développement, avec Lazarus : vous pouvez aider à la tester, la traduire et à la développer.

  11. #11
    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
    Bonjour,

    Juste pour la partie FPC.
    http://rpdev.net/home/book/export/html/33

    cldt
    Iwoks

Discussions similaires

  1. Développement multi-plateformes ?
    Par Cyborg dans le forum Mobiles
    Réponses: 4
    Dernier message: 29/07/2011, 09h25
  2. Meilleur solution de développement multi plateforme
    Par bleuerouge dans le forum Mac OS X
    Réponses: 1
    Dernier message: 29/11/2010, 09h08
  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. Outils de développement multiplateforme
    Par jibe74 dans le forum Outils pour C & C++
    Réponses: 27
    Dernier message: 30/10/2006, 00h04
  5. Outil de développement multi-plateformes
    Par alex6891 dans le forum Développement 2D, 3D et Jeux
    Réponses: 3
    Dernier message: 04/04/2006, 10h03

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