Seuls les membres ayant 30 points peuvent parler sur le chat.

Forum Casio - Autres questions


Index du Forum » Autres questions » erreur PrizmSDK
Lightmare Hors ligne Membre de CreativeCalc Points: 650 Défis: 0 Message

erreur PrizmSDK

Posté le 05/04/2019 18:50

Bonjour ! Alors que j'étais en train de porter mon programme de raycasting en C pour graph 90 avec le PrizmSDK, j'ai eu besoin d'utiliser la librairie math.h pour calculer les cosinus, sinus... etc
Seulement, lors de la compilation, j'ai une erreur, et les seules solutions que j'ai trouvé sont en rapport avec le compilateur gcc... Je vous mets le programme ( qui est petit, donc ca devrait aller ) et l'erreur ci dessous :

programme
Cliquer pour enrouler
#include <fxcg/display.h>
#include <fxcg/keyboard.h>
#include <math.h>


void main(void) {

    // PrintXY(3, 1, "", TEXT_MODE_NORMAL, TEXT_COLOR_RED); // Place it somewhere on the screen
    
    double r = 0;
    double camera_angle = 0;
    double player_x = 0;
    double player_y = 0;
    double ray_distance = 0;
    double ray_angle = 0;
    double wall_dist = 0;
    double wall_height_1 = 0;
    double wall_height_2 = 0;
    double cursor = 0;

    int map[20][20] = {
        1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
        1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
    };

    Bdisp_AllClr_VRAM();

    while (1) {

        // deplacements
        player_x = player_x + r * (cos(camera_angle));
        player_y = player_y + r * (cos(camera_angle));
        r = 0;


        cursor = 0;
        for (ray_angle = camera_angle - 30; ray_angle < camera_angle + 300; ray_angle = ray_angle + 0.47) {
            cursor++;
            for (ray_distance = 0; ray_distance < 30; ray_distance++) {

                if (map[ (int) (ray_distance * (double) sin(ray_angle) + player_y)][ (int) (ray_distance * (double) cos(ray_angle) + player_x)] == 1) {

                    wall_dist = (double) sqrt((double) pow (ray_distance * (double) cos(ray_angle), 2) + (double) pow (ray_distance * (double) sin(ray_angle), 2));
                    wall_height_1 = (60 / wall_dist) + 30;
                    wall_height_2 = (-60 / wall_dist) + 30;

                    Bdisp_SetPoint_DD(cursor, wall_height_1, 0x0000); //to complete
                }

            }

        }

    }
    

    return;
}



erreur
Cliquer pour enrouler
projet_1.o: In function `_main':
projet_1.c:(.text.startup+0x154): undefined reference to `_memset'
projet_1.c:(.text.startup+0x290): undefined reference to `_sin'
projet_1.c:(.text.startup+0x298): undefined reference to `_cos'
projet_1.c:(.text.startup+0x2a4): undefined reference to `_sqrt'
collect2: ld returned 1 exit status
make[1]: *** [C:/Users/mkowalski/Desktop/PrizmSDK-0.3/projects/projet_1/projet_1.bin] Error 1
make: *** [build] Error 2


Si vous voulez des précisions, n'hésitez pas !


Mactul Hors ligne Membre Points: 699 Défis: 0 Message

Citer : Posté le 05/04/2019 18:55 | #


Tu nas pas oublier d'inclure une lib dans le SDK ou une connerie dans le genre?
Mes programmes
Cliquer pour enrouler

Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ

Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Lightmare Hors ligne Membre de CreativeCalc Points: 650 Défis: 0 Message

Citer : Posté le 05/04/2019 18:56 | #


Non non : j'ai bien vérifié que la bibliothèque soit bien la bonne...
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Mactul Hors ligne Membre Points: 699 Défis: 0 Message

Citer : Posté le 05/04/2019 19:01 | #


Euh il dit un truc avec return 1
Peut être ton return doit être "return 1"
Mes programmes
Cliquer pour enrouler

Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ

Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Lephenixnoir En ligne Administrateur Points: 18450 Défis: 142 Message

Citer : Posté le 05/04/2019 21:21 | #


Tu as dû oublier -lc avec -lfxcg (avant ou après, je ne sais plus ; essaie les deux ordres).
Lightmare Hors ligne Membre de CreativeCalc Points: 650 Défis: 0 Message

Citer : Posté le 06/04/2019 11:20 | #


@Lephenixnoir : en effet ils disaient un truc comme ca sur les sites où j'ai cherché... Mais où je dois le mettre ?


merci de vos réponses !
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Lephenixnoir En ligne Administrateur Points: 18450 Défis: 142 Message

Citer : Posté le 06/04/2019 11:36 | #


À la fin de la ligne de commande de compilation (la dernière, celle qui lie ensemble les fichiers objets).
Lightmare Hors ligne Membre de CreativeCalc Points: 650 Défis: 0 Message

Citer : Posté le 06/04/2019 13:40 | #


C'est à dire dans quel fichier ?
car je l'ai fait dans les deux fichiers Makefile , j'ai écrit -lc avant et après -lfxcg mais l'erreur persiste...
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Lephenixnoir En ligne Administrateur Points: 18450 Défis: 142 Message

Citer : Posté le 06/04/2019 20:57 | #


Montre-nous le Makefile et le log complet de compilation, dans ce cas.
Lightmare Hors ligne Membre de CreativeCalc Points: 650 Défis: 0 Message

Citer : Posté le 07/04/2019 10:51 | #


Bonjour ! j'ai du neuf ! après avoir cherché longtemps, j'ai vu qu'il fallait en fait ajouter
-lm
avant
-lfxcg
dans les deux fichiers makefile !
"Quand je dis à la cour : "Sautez ! ", tout le monde me demande "jusqu'où ?" "
Dijkstra - The Witcher
Lephenixnoir En ligne Administrateur Points: 18450 Défis: 142 Message

Citer : Posté le 07/04/2019 11:14 | #


Ah oui je suis con tiens, memset() c'est dans la libc mais le reste c'est la libm. x)

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
Pour coloriser votre code, cliquez ici.
Sinon cliquez sur le bouton ci-dessous.
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2020 | Il y a 91 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd