[Programmation] Compilation d'un projet sous GCC (Compilateur GNU 4.9.3)
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Compilation d'un projet sous GCC (Compilateur GNU 4.9.3)



  1. #1
    Melhuntchon

    Compilation d'un projet sous GCC (Compilateur GNU 4.9.3)


    ------

    Bonjour,

    Je vous sollicite car je rencontre un problème sur mon projet.
    En effet ce dernier a était développé en C sous un environnement KEIL.
    Il y a une librairie interfacée à l'aide d'un fichier interface.h. Cette librairie est static, elle et compilé puis linké avec mes fichiers users appli de mon projet.

    Ce projet a était compilé sur ma carte cible et j'ai pu validé son bon fonctionnement.

    Aujourd'hui je souhaite utilisé l'environnement GCC car il est gratuit. Pour cela j'utilise le logiciel simplicité studio qui inclut un IDE Eclipse.
    Le compilateur est GNU 4.9.3.
    Je souhaite compilé le tout en Debug afin de valider pas à pas le fonctionnement du code compilé sous GCC.
    La deuxième étape consistera à passer le tout en Release

    Mon problème:

    Lorsque je compile la console me retourne un problème au niveau du linker.

    Dans un premier temps j'ai réussi a compilé ma librairie static en debug.
    Puis j'ai créé un projet reprenant mes fichiers sources user apli et j'ai inclut dans un dossier "Library" mon fichier .a fraîchement généré.

    J'ai ouvert mon projet sous eclipse et paramétrer le linker afin de linker ma librairie static.

    La console me retourne une erreur dans ma librairie: "Undefined reference" sur 8 fonctions qui sont bien déclarer et appeler dans ma librairie mais qui qui sont référencé dans un fichier callback de mon projet user appli.

    J'ai revu tout le paramétrage du compilateur sous éclipse, relu les options du linker dans la doc GCC je ne vois toujours pas pourquoi il ne fait pas le lien entre les fonctions déclarées en lib et référencées en userappli.

    Est ce qu'il y a une subtilité a connaitre sous GCC pour ce genre de travaux?

    Je tiens a préciser que je n'ai pas oublié d'inclure les librairies et includes dont j'ai besoin pour faire tourner ma carte (GCC, micro-controleurs, Configuration RTX)

    Je vous remercie d'avance de l'intérêt que vous prêterez à mon problème.

    Cordialement

    -----

  2. #2
    jls28

    Re : Compilation d'un projet sous GCC (Compilateur GNU 4.9.3)

    Salut,

    il est très est probable que cette librairie
    qui fonctionne avec le compilateur KEIL
    ait besoin d'être recompilé avec le GCC pour
    pouvoir fonctionner avec ce compilateur,

    donc il faudrait disposer du code source
    de cette librairie.

  3. #3
    Vincent PETIT
    Animateur Électronique

    Re : Compilation d'un projet sous GCC (Compilateur GNU 4.9.3)

    Salut,
    Il me semble qu'il te faut compiler avec l'option -L suivi du chemin complet du répertoire où est le .a

    Ou alors avec l'option -l suivi du nom du .a mais le chemin doit être connu du compilateur.

    Par défaut GCC compile avec l'option -c donc sans linker.

    http://www.rapidtables.com/code/linux/gcc.htm
    Là où il n'y a pas de solution, il n'y a pas de problème.

  4. #4
    Melhuntchon

    Re : Compilation d'un projet sous GCC (Compilateur GNU 4.9.3)

    Bonjour,

    Citation Envoyé par jls28 Voir le message
    Salut,

    il est très est probable que cette librairie
    qui fonctionne avec le compilateur KEIL
    ait besoin d'être recompilé avec le GCC pour
    pouvoir fonctionner avec ce compilateur,

    donc il faudrait disposer du code source
    de cette librairie.
    En effet, je dispose du code source. Comme précisé ci dessus j'ai déjà compilé ma librairie sous GCC. Le compilateur génère une librairie static en sortie que j'inclus après dans mon projet. (Pour la génération de cette librairie sous GCC je n'ai pas eu besoin de faire recours au linker)

    Citation Envoyé par Vincent PETIT Voir le message
    Salut,
    Il me semble qu'il te faut compiler avec l'option -L suivi du chemin complet du répertoire où est le .a

    Ou alors avec l'option -l suivi du nom du .a mais le chemin doit être connu du compilateur.

    Par défaut GCC compile avec l'option -c donc sans linker.

    http://www.rapidtables.com/code/linux/gcc.htm
    Tout à fait et j'ai bien pris le soin d'entrer les bonnes options, les bon chemins et le bon nom de fichier (Sans lib en préfix). D'ailleurs je sais que ma librairie est trouvé et reconnu par le compilateur puisque j'ai résolu un problème que me retourné le compilateur à ce sujet.

    Aperçu de la ligne du makefile généré après avoir configurer mon compilateur:

    Invoking: GNU ARM C Linker
    arm-none-eabi-gcc -g -gdwarf-2 -mcpu=cortex-m3 -mthumb -T "APP_LightClicKW.ld" -L"C:\Users\user\SimplicityStud io\v4_workspace\APP_LightClicK W\Library" -LC:/RTX/reptile/RTX/LIB/GCC/ -Xlinker --gc-sections -Xlinker -Map="APP_LightClicKW.map" --specs=nano.specs -o APP_LightClicKW.axf -Wl,--start-group -lRTX_CM3 -lModuleIP -Wl,--end-group -Wl,--start-group -lgcc -lc -lnosys -Wl,--end-group
    -L => Adresse
    -l Nom de la librairie

    Ici j'inclus deux librairies, le RTX qui est la lib de mon Microcontroleur et ma librairie (ModuleIp)

    Je pense que le problème est dans le fonctionnement de ce linker. Par exemple dans la ligne dessus je retrouve APP_LightClicKW.ld avec l'option -T (Use script as the linker script.)
    J'imagine que ce fichier lg regroupe tout mes fichiesr objet suite à la compilation de mes fichiers sources API.

    Je ne sais pas si ce sont mes connaissances en compilateur qui sont limités, mais j’espérais que quelqu'un ai rencontré le même problème que moi ^^
    Qui se souviens du J-Cubique ?

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Problème de compilation d'un projet sous MPLAB ?
    Par aymenb10 dans le forum Électronique
    Réponses: 1
    Dernier message: 13/04/2015, 03h32
  2. La compilation sous Qt
    Par jojo150393 dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 01/03/2013, 07h35
  3. Compilateur sous seven
    Par invitec50b5ce8 dans le forum Électronique
    Réponses: 10
    Dernier message: 02/11/2011, 22h26
  4. compilateur C sous seven et gratuit ?
    Par sg1 dans le forum Électronique
    Réponses: 9
    Dernier message: 09/08/2011, 10h28
  5. compilateur c/c++ sous 98 , pas gourmand.
    Par invitee17aeca5 dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 10/09/2006, 13h25
Découvrez nos comparatifs produits sur l'informatique et les technologies.