Avatar ·

Erreur de l'éditeur de liens « undefined reference » en C++ : causes et correction

Bonjour ! J'ai commencé à apprendre le C++ et je suis tombé sur une erreur que je ne comprends pas. J'écris un programme simple qui additionne deux nombres, mais le compilateur affiche une erreur étrange lors de l'étape d'édition de liens. Voici mon code. Il y a un fichier d'en-tête `math_utils.h` : ```cpp #ifndef MATH_UTILS_H #define MATH_UTILS_H int add(int a, int b); #endif ``` Le fichier `math_utils.cpp` : ```cpp #include "math_utils.h" int add(int a, int b) { return a + b; } ``` Et le fichier principal `main.cpp` : ```cpp #include #include "math_utils.h" int main() { std::cout << "Sum: " << add(5, 3) << std::endl; return 0; } ``` Je compile comme ceci : `g++ main.cpp -o program`. En réponse, j'obtiens l'erreur : ``` /tmp/ccXxYyZz.o: In function `main' : main.cpp:(.text+0x1a): undefined reference to `add(int, int)' collect2: error: ld returned 1 exit status ``` J'ai vérifié — la fonction `add` est définie dans `math_utils.cpp`, l'en-tête est inclus. Pourquoi l'éditeur de liens ne la voit-il pas ? Qu'est-ce qu'une « undefined reference » ?