CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Code::Blocks] Undefined reference to

oswim10
oswim10
Niveau 10
20 février 2013 à 17:11:25

Bonjour,

J'ai un projet en réseaux à rendre, qui consiste à programmer la couche liaison. pour cela, le prof nous a donnés 2 fichiers: physique.h et physique.c, qui contient les primitives/fonctions de la couche physique.

J'ai rajouté plusieurs fichiers: couche_liaison.h, service_liaison.h, main.c et service_laision.c.

Dans main.h, j'utilise des fonctions de la couche physique comme par exmemple VersCana, qui sont définis dans physique.h, et des fonctions définis dans service_liaison.h.

Mon main.c inclut ca:

  1. include "physique.h"
  2. include "service_liaison.h"

Service_liaison.h inclut:

  1. include "couche_liaison.h"

Service_liaison.c inclut :

  1. include "service_liaison.h"

Mais lorsque je compile, j'ai sur les fonctions qui sont définis dans physique.h:

"undefined reference to [nom_fontion]"

Or, je pense ne pas mettre trompé dans les includes...
Et j'ai bien mis la librairie ws2.32 (car dans physique.c, il y a winsock2.h)

Je tiens à préciser que je n'ai aucun problème d'habitude, et que j'ai déjà réinstaller Code::Blocks, mais le problème persiste...(et ce problème n'est que pour els fonctions du fichier physique.h.... [aucun problème si j'utilise par exemple une fonction défini dans service_liaison.h..])

Qui peut m'aider svp?

godrik
godrik
Niveau 30
20 février 2013 à 17:14:47

Le probleme que tu as n'est pas un probleme de compilation, mais un probleme d'edition de lien. Les #include sont certainement correcte dans ton code. Par contre, il est possible que tu es oublie "d'ajouter un fichier .cpp au projet".

oswim10
oswim10
Niveau 10
20 février 2013 à 17:18:33

J'ai jamais fait ca...^^'

oswim10
oswim10
Niveau 10
20 février 2013 à 17:28:08

Dsl du double post

Mais un fichier cpp, ce n'est pas du C++?
Et mon projet contient tout les fichiers (main.c, physique.c/.h, service_laision.c/.h et couche_laiaison.h)

D'habitude, je ne dois rien rajouter.

Je dois rajouter quel fichier stp?

godrik
godrik
Niveau 30
20 février 2013 à 18:26:47

my bad. C'est du C que tu fais. ce sont les fiheir .c alors.

si tu utilises des headers files (fichier .h) j'imagine que c'est pour separer les implementations des tes fonctions dans differents fichiers .c

Il faut donc ajouter ces ficheirs .c a ton projet dans code::locks. Je n'utilises pas cette editeurs, donc, je ne sais pas exactement comment faire. mais c'est probablement quelquechose du genre: click droit sur le nom du projet dans la barre a gauche -> ajouter ficheir source -> selectionne le fichier .c qui contient la foncion qui est reporte comme manquante.

oswim10
oswim10
Niveau 10
20 février 2013 à 19:16:53

Malheureusement, le fichier est bien présent dans le projet..

Mais j'ai trouvé: bizarrement, il semblerait que ca ne fonctionnait pas car les fonction dans le fichier physique.c était du style: InitialisationCanal, or, j'ai changé en initialisation_canal et ca a fonctionné..... vraiment bizarre étant donné que j'ai parfois écrit plusieurs programme avec des fonctions ayant des majuscules, mais bon XD

En tout cas, merci de ton aide.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment