Maison >développement back-end >C++ >Pourquoi CMake ne parvient-il pas à trouver ma bibliothèque lors de l'utilisation de « link_directories » ?

Pourquoi CMake ne parvient-il pas à trouver ma bibliothèque lors de l'utilisation de « link_directories » ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-05 15:16:09844parcourir

Why is CMake Failing to Find My Library When Using `link_directories`?

CMake ne parvient pas à localiser la bibliothèque avec l'appel "link_directories"

Ce problème se produit lors de la tentative de liaison d'une bibliothèque à l'aide de la directive "link_directories" dans CMake mais rencontrant des erreurs de l'éditeur de liens indiquant des références non définies aux fonctions de la bibliothèque.

Dans l'exemple fourni, le L'appel "link_directories" n'est pas placé correctement. Pour résoudre ce problème, assurez-vous que l'appel "link_directories" se trouve avant l'appel "add_executable" dans votre fichier CMakeLists.txt.

Voici le fichier CMakeLists.txt modifié :

link_directories(/usr/lib/x86_64-linux-gnu)
add_executable(test main.cpp)
target_link_libraries(test protobuf)

En plaçant "link_directories" avant "add_executable", CMake identifie correctement la bibliothèque lors de la liaison et résout les erreurs de référence non définies.

Il convient de noter que les messages d'erreur spécifiques et le chemin de la bibliothèque peuvent varier en fonction de votre système et de la bibliothèque à laquelle la bibliothèque est liée. Cependant, le principe général consistant à garantir que "link_directories" précède "add_executable" reste le même.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn