Avatar ·

Erreur de liaison : /usr/bin/ld: cannot find -l<nom_bibliothèque> en C++ sur Linux

Bonjour ! Je suis débutant en C++ et Linux, et je lutte depuis plusieurs heures avec une erreur. J'écris un programme simple qui utilise une bibliothèque pour travailler avec des images (libpng). Je l'ai installée via apt : `sudo apt install libpng-dev`. Voici mon code (fichier main.cpp) : ```cpp #include #include int main() { std::cout << "Hello, PNG!" << std::endl; return 0; } ``` Je compile ainsi : `g++ main.cpp -o test -lpng`. En réponse, j'obtiens : ``` /usr/bin/ld: cannot find -lpng collect2: error: ld returned 1 exit status ``` J'ai vérifié que les fichiers de la bibliothèque existent : `ls /usr/lib/x86_64-linux-gnu/libpng*` montre `libpng16.a`, `libpng16.so`, `libpng.a` et `libpng.so`. Pourquoi le linker ne voit-il pas la bibliothèque ? J'ai essayé différents flags : `-L/usr/lib/x86_64-linux-gnu`, `-static`, mais rien n'y fait. La bibliothèque est bien installée, mais le programme ne compile pas. Qu'est-ce que je fais de travers ? Expliquez-moi, s'il vous plaît, comme à un débutant. <<>>

Cause de l'erreur et sa solution

L'erreur /us