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

C Discussion :

Librairie mal reliee?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 171
    Par défaut Librairie mal reliee?
    Hello, j'ai encore beaucoup de mal avec les libraires, je suis sous System Workbench for STM32 (eclipse).

    J'ai l'erreur suivante sur 3 de mes fonctions, toutes reliees a la meme librairie:

    Nom : libraires1.jpg
Affichages : 294
Taille : 451,9 Ko

    Lorsque je fais un CTRL+Clic sur ces fonctions, cela me redirige bien vers mon fichier "stm32l1xx_hal_tim.h" :
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    /** @addtogroup TIM_Exported_Functions_Group1
      * @{
      */
    /* Time Base functions ********************************************************/
    HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim);
    HAL_StatusTypeDef HAL_TIM_Base_DeInit(TIM_HandleTypeDef *htim);
    void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim);
    void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim);
    /* Blocking mode: Polling */
    HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim);
    HAL_StatusTypeDef HAL_TIM_Base_Stop(TIM_HandleTypeDef *htim);
    /* Non-Blocking mode: Interrupt */
    HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim);
    HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim);
    /* Non-Blocking mode: DMA */
    HAL_StatusTypeDef HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef *htim, uint32_t *pData, uint16_t Length);
    HAL_StatusTypeDef HAL_TIM_Base_Stop_DMA(TIM_HandleTypeDef *htim);

    J'ai cependant l'impression que mon main.c et mon stm32l1xx_hal_tim.h ne sont pas "relies" avec le fichier stm32l1xx_hal_tim.c

    Je suis un peu perdu, auriez-vous une idee, solution? Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 771
    Par défaut
    C'est normal c'est du C/ C++

    En gros, tu as les entêtes (fichiers .h/ .hpp) mais elles ne contiennent que des déclarations (<- ces entêtes doivent être inclues dans le projet en spécifiant à la compilation/ édition des liens le chemin du dossier qui les contiennent. Avec gcc c'est la bascule -I)
    Il te manque les bibliothèques (ici stm32l1xx_hal_tim)
    1) Soit tu as le code de ces bibliothèques (fichiers .c/ .cpp). Tu as 2 solutions
    • compiler chacune avec un autre projet pour avoir une bibliothèque statique/ dynamique (voir après)
    • inclure tout le code avec tes sources dans ton projet.


    2) Soit ces bibliothèques sont fournies sous forme de bibliothèques statiques/ dynamiques (fichiers .lib/ .a/ .dll) Il faut spécifier à la compilation/ édition des liens leur nom et le chemin du dossier qui les contiennent s'il n'est pas par défaut. Avec gcc ce sont les bascules -L et -l
    Et pour les bibliothèques réellement dynamiques (fichiers .dll/ .so) il faut un bout de code pour les charger, les utiliser et les décharger.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 171
    Par défaut
    Hello,

    Oui je sais mais justement, j'ai tous mes fichiers .c dans un dossier "Src" et mes fichiers .h dans un dossier "Inc".

    Il n'y a qu'avec les fonctions des fichiers stm32l1xx_hal_tim.h et stm32l1xx_hal_tim.c que j'ai un probleme :/

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Salut,

    stm32l1xx_hal_tim.c est bien présent ? Cliquez-droit et faire "refresh" sur le projet ne change rien ? Modifier stm32l1xx_hal_tim.c pour introduire une erreur de syntaxe, builder le projet pour voir si ce fichier est bien utilisé génère bien une erreur du compilateur ? Project / Clean / Rebuild donne quelque chose ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 171
    Par défaut
    Salut,

    Alors pour une raison inconnue les erreurs ont disparues entre hier et aujourd'hui. J'ai fais un MaJ de Eclipse hier soir mais je pense pas que ca ait resolu le probleme.

    Car j'ai toujours un soucis avec le fichier stm32l1xx_hal_tim.c.
    Modifier stm32l1xx_hal_tim.c pour introduire une erreur de syntaxe, builder le projet pour voir si ce fichier est bien utilisé génère bien une erreur du compilateur ?
    J'ai ecris "blabla" a un endroit au hasard dans le code, et en compilant j'obtiens des erreurs mais le "blabla" qui n'a rien a faire ici n'est pas detecte:

    Building file: ../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim.c
    Invoking: MCU GCC Compiler
    C:\Users\Pierre\Documents\ESEO\B2\Stage_Prague\STM32CUBE\gondola_project_v1\Debug
    arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -mfloat-abi=soft '-D__weak=__attribute__((weak))' '-D__packed=__attribute__((__packed__))' -DUSE_HAL_DRIVER -DSTM32L152xE -I"C:/Users/Pierre/Documents/ESEO/B2/Stage_Prague/STM32CUBE/gondola_project_v1/Inc" -I"C:/Users/Pierre/Documents/ESEO/B2/Stage_Prague/STM32CUBE/gondola_project_v1/Drivers/middleware/FatFs" -I"C:/Users/Pierre/Documents/ESEO/B2/Stage_Prague/STM32CUBE/gondola_project_v1/Drivers/middleware/FatFs/src" -I"C:/Users/Pierre/Documents/ESEO/B2/Stage_Prague/STM32CUBE/gondola_project_v1/Drivers/middleware/FatFs/src/drivers" -I"C:/Users/Pierre/Documents/ESEO/B2/Stage_Prague/STM32CUBE/gondola_project_v1/Drivers/STM32L1xx_HAL_Driver/Inc" -I"C:/Users/Pierre/Documents/ESEO/B2/Stage_Prague/STM32CUBE/gondola_project_v1/Drivers/STM32L1xx_HAL_Driver/Inc/Legacy" -I"C:/Users/Pierre/Documents/ESEO/B2/Stage_Prague/STM32CUBE/gondola_project_v1/Drivers/CMSIS/Device/ST/STM32L1xx/Include" -I"C:/Users/Pierre/Documents/ESEO/B2/Stage_Prague/STM32CUBE/gondola_project_v1/Drivers/CMSIS/Include" -Og -g3 -Wall -fmessage-length=0 -ffunction-sections -c -fmessage-length=0 -MMD -MP -MF"Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim.d" -MT"Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim.o" -o "Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim.o" "../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim.c"
    ../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim.c:152:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'static'
    static void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structure);
    ^~~~~~
    ../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim.c: In function 'HAL_TIM_Base_Init':
    ../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim.c:234:3: warning: implicit declaration of function 'TIM_Base_SetConfig'; did you mean 'TIM_ITRx_SetConfig'? [-Wimplicit-function-declaration]
    TIM_Base_SetConfig(htim->Instance, &htim->Init);
    ^~~~~~~~~~~~~~~~~~
    TIM_ITRx_SetConfig
    ../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim.c: At top level:
    ../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim.c:4456:13: warning: conflicting types for 'TIM_Base_SetConfig'
    static void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structure)
    ^~~~~~~~~~~~~~~~~~
    ../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim.c:4456:13: error: static declaration of 'TIM_Base_SetConfig' follows non-static declaration
    ../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim.c:234:3: note: previous implicit declaration of 'TIM_Base_SetConfig' was here
    TIM_Base_SetConfig(htim->Instance, &htim->Init);
    ^~~~~~~~~~~~~~~~~~
    ../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim.c:4456:13: warning: 'TIM_Base_SetConfig' defined but not used [-Wunused-function]
    static void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structure)
    ^~~~~~~~~~~~~~~~~~
    make: *** [Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim.o] Error 1
    Drivers/STM32L1xx_HAL_Driver/Src/subdir.mk:78: recipe for target 'Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim.o' failed

    09:12:34 Build Finished (took 1s.320ms)

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par tengalice49 Voir le message
    J'ai ecris "blabla" a un endroit au hasard dans le code, et en compilant j'obtiens des erreurs mais le "blabla" qui n'a rien a faire ici n'est pas detecte:
    Donc ton fichier est sûrement pas compilé et encore moins lié à l'exécutable.

    Pourtant l'IDE prétend le compiler Building file: ../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim.c, mais y'a un paquet d'erreurs et il faut les corriger dans l'ordre d'apparition.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ../Drivers/STM32L1xx_HAL_Driver/Src/stm32l1xx_hal_tim.c:152:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'static'
    static void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structure);
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

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

Discussions similaires

  1. [librairies standard]slang.h et curses.h
    Par miss8 dans le forum Réseau
    Réponses: 13
    Dernier message: 27/12/2002, 10h14
  2. inclure une librairie *.lib
    Par darkbm dans le forum C
    Réponses: 2
    Dernier message: 16/12/2002, 22h48
  3. Réponses: 5
    Dernier message: 09/12/2002, 22h23
  4. [GTK]PB Librairie GTK+ sous dev-c++
    Par wozzy dans le forum Dev-C++
    Réponses: 15
    Dernier message: 05/11/2002, 14h55
  5. compatibilité des librairies directX8
    Par Freakazoid dans le forum DirectX
    Réponses: 3
    Dernier message: 23/05/2002, 21h33

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