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

  1. #1
    Membre du Club
    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
    Points : 55
    Points
    55
    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 : 268
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 éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 670
    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 670
    Points : 10 677
    Points
    10 677
    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 du Club
    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
    Points : 55
    Points
    55
    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
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 483
    Points : 13 681
    Points
    13 681
    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 du Club
    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
    Points : 55
    Points
    55
    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 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 128
    Points : 33 053
    Points
    33 053
    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);

  7. #7
    Membre du Club
    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
    Points : 55
    Points
    55
    Par défaut
    Salut,

    Je pense que j'ai trop bidouille dans des fichiers que je n'aurais pas du toucher.
    J'ai cree un nouveau projet avec la librairie HAL, puis j'ai copie le fichier stm32l1xx_hal_tim.c dans mon dossier "Src" a la place de celui qui me donnait toutes ces erreurs.

    C'est surement pas une bonne pratique mais desormais je n'ai plus d'erreurs

    Merci a tous d'avoir pris le temps de lire et repondre.

+ 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