Visual Studio Code et BartmanAbyss

Forum Amiga Coding Visual Studio Code et BartmanAbyss

  • Ce sujet contient 21 réponses, 5 participants et a été mis à jour pour la dernière fois par stephbb75, le il y a 1 année et 5 mois.
  • Créateur
    Sujet
  • #177260
    stephbb75
      • Level 12
      • Messages : 1566

      Salut,

      Je tente de faire un peut de C pour Amiga mais sur mon PC (pour des raisons pratique  pour moi !).
      Mais j’arrive pas à grand choses :wacko:
      J’ai les dernière version de tout.

      Si je prend se code :
      http://www.pjhutchison.org/tutorial/graphics.html
      Qui ma fois est tout con (rien de très spécial) cela compile sans problème sur Amiga avec StormC mais pas sur le PC.
      Il ne connais pas #include <stdlib.h> (un comble !)
      Du coup la fonction rand() bas il ne la connais pas !

      si je retire l’include et la fonction il compile :yahoo:

      mais il explose au link :rant:
      undefined reference to `IntuitionBase’
      undefined reference to `GfxBase’
      undefined reference to `SysBase’

      et j’en passe !!!!

      J’ai tester plusieurs petit programme (ouvrir un simple fenêtre !) et j’ai toujours des erreurs :negative:

      Quelqu’un a réussit à compiler un autre truc que le code d’exemple ?

       

      P.S.
      J’ai tenté d’ajouter les définitions qu’il y a dans le code de démos …
      // We need to declare the libraries as « externally_visible » since we are using the option -fwhole-program in the Makefile
      __attribute__((externally_visible)) struct ExecBase *SysBase;
      Pareil des erreurs…

      https://youtube.com/@stephbb75

    Affichage de 6 réponses de 16 à 21 (sur un total de 21)

    Partager sur vos réseaux sociaux préférés :
    Facebooktwitterredditpinterestlinkedintumblrmail

    • Auteur
      Réponses
    • #177592
      slack
        • Level 7
        • Messages : 465

        @stephbb75,

        La bibliothèque utility.library est utilisée sur mon 1200 sous amigaOS 3.0. Je ne la trouve pas dans libs:. Je pense qu’elle est en ROM.

        Peux-tu lancer ARTM sur tes machines ? Ce logiciel affiche de nombreuses informations, en particulier les bibliothèques utilisées sur le système.



        #177618
        JOB
          • Level 0 - Newbie
          • Messages : 5

          @stephbb75

          Il est possible de compiler et d’exécuter le programme sans recourir à la utility.library (j’ai vérifié de mon côté). Il suffit de changer la ligne :

          if(IntuitionBase && UtilityBase && GfxBase && GadToolsBase)

          en :

          if(IntuitionBase /*&& UtilityBase */ && GfxBase && GadToolsBase)

          D’autre part, si la utility.library n’est pas trouvée, il est possible qu’il y ait un caractère invisible qui se soit glissé dans son nom. Cela m’est déjà arrivé plusieurs fois sur différents systèmes. Il suffit par exemple d’un CTRL malencontreux lors de la frappe pour faire apparaître un tel caractère. Dans le cas de ce programme Amiga, si tu l’as recopié par un copier-coller à partir de cette page du forum, la même mésaventure a pu se produire. J’ai en effet remarqué que sur le forum, les guillemets droits (anglais) sont transformés en guillemets typographiques (français) et le nom de la utility.library est justement entouré de tels guillemets ! Lorsque je soupçonne un problème de ce type, j’efface le texte en question, y compris les espaces qui le précèdent et le suivent, et je retape le tout. Cette astuce m’a déjà permis de me sortir d’un mauvais pas plusieurs fois !

          Pour vérifier cette hypothèse, j’ai mis sur https://www.lovemaths.fr/amiga/amiga_graphics.7z les deux codes sources du programme, l’un sans la utility.library et l’autre avec (il n’y aura donc pas de problèmes de guillemets) ainsi que les deux a.exe résultants.

          Concernant ta remarque sur la possibilité d’inclure une disquette Workbench minimaliste avec l’extension, cela me parait difficile car il faudrait y inclure les bibliothèques qui se trouvent sur le disque (comme les bibliothèques mathématiques) qui sont sous copyright. Cependant, cela m’a donné une idée : il est peut-être possible de recourir à AROS pour créer un Workbench utilisable (on peut déjà utiliser le kickstart AROS). Je vais creuser cette idée. Cela n’aboutira pas forcément, mais je pense que cela vaut la peine d’être investigué.

          #177621
          stephbb75
            • Level 12
            • Messages : 1566

            Salut,

            if(IntuitionBase && UtilityBase && GfxBase && GadToolsBase) en : if(IntuitionBase /*&& UtilityBase */ && GfxBase && GadToolsBase)

            Ok, franchement je n’ai pas regardé cette partie, j’ai été comme un bourrin copier le code et compiler :lol:

            Concernant ta remarque sur la possibilité d’inclure une disquette Workbench minimaliste avec l’extension, cela me parait difficile car il faudrait y inclure les bibliothèques qui se trouvent sur le disque (comme les bibliothèques mathématiques) qui sont sous copyright.

            Il n’est pas nécessaire de tout fournir, mais juste le minimum.
            Et je pensais plus à un DD (image ou répertoire) ou ensuite tu peut copier ce que tu veut dedans.

            enfin, les problèmes de copyright me dépasse complétement :wacko:

            il est peut-être possible de recourir à AROS pour créer un Workbench utilisable (on peut déjà utiliser le kickstart AROS)

            Ne risque t’il pas d’avoir des incompatibilité ensuite sur une machine Amiga (de base). Je ne maitrise pas du tout AROS !

             

            https://youtube.com/@stephbb75

            #177695
            stephbb75
              • Level 12
              • Messages : 1566

              Salut,

              J’ai tout de même continuer un peut.
              Alors oui j’avais 2 espaces qu’il n’aimais pas dans mon code vis a vis du tien.

              Donc cela compile et s’exécute :yahoo:

              Même du débug :lol:
              Mais pour le debug, y’a quand même des trucs que je ne comprend pas.

              Voici un exemple de point d’arrêt :

              Quand j’exécute le 1er break qu’il fait c’est à la ligne 20 ??
              Qu’il ne fasse pas de break à la ligne 31 je peut comprendre c’est juste une affectation.
              Mais à la ligne 37 je ne voie pas pourquoi.
              Idem à la ligne 53 pas de break
              Par contre il s’arrête bien à la ligne 55 (au 1er test je n’avais pas mis se break c’est pour cela qu’il c’est arrêté à la ligne 20)

               

              Bon, je vais voire ci je peut compiler autre choses …

               

              https://youtube.com/@stephbb75

              #177710
              JOB
                • Level 0 - Newbie
                • Messages : 5

                @stephbb75

                Bonsoir,

                Je suis content que ça fonctionne ! Le coup des caractères invisibles m’est déjà arrivé plusieurs fois dans ma vie de programmeur :lol:

                Pour le débugger, il lui faut un peu de temps pour démarrer (ç’est comme ça dans l’extension originale de Bartmann). Si j’ai besoin de débugger le début de mon code, je mets un peu de code supplémentaire avant ; typiquement, j’appelle la fonction MUIShowHide de l’exemple (dans ce cas, il faut ouvrir la utility.library).

                Je trouve ce débugger vraiment performant. Aux points d’arrêt, on peut regarder le contenu des registres, de la mémoire, le code assembleur, faire du pas à pas, etc. Tout pour faire le bonheur des développeurs :yahoo:

                C’est grâce à ce débugger que j’ai pu comprendre pourquoi MUI ne fonctionnait pas correctement avec les dernières versions de gcc.

                #177712
                stephbb75
                  • Level 12
                  • Messages : 1566

                  Salut @JOB,

                  Du peut que j’ai utilisé le debugger c’est vrais qu’il semble bien pratique.

                  Par contre reprendre du code fait sur Amiga est une vrais galère, entre les include qu’il ne trouve pas (j’ai pourtant mis le NDK et sont chemin pour les include) et le link qui merde sur des truc que je ne comprend même pas pourquoi (y trouve pas des fonctions qui se trouve dans le code ??? pourtant pas de PB sur Amiga, pas de problème de case, de prototype, …) ).

                  Enfin le dev sur Amiga en C n’a jamais été très simple, chaque compilo avais sa logique et ces façon de faire, la il faut encore faire autrement.

                  je verrais si je persévérerais avec VSC ou pas, je ferais quelques essais encore…

                  https://youtube.com/@stephbb75

                Partager sur vos réseaux sociaux préférés :
                Facebooktwitterredditpinterestlinkedintumblrmail
                Affichage de 6 réponses de 16 à 21 (sur un total de 21)
                • Vous devez être connecté pour répondre à ce sujet.