0
votes

Clion - Impossible de résoudre une référence non définie au constructeur en classe

J'ai déjà regardé Cette réponse mais je ne peux pas sembler trouver la solution pour mon cas.

Je viens de commencer à travailler en C ++ et Clion. J'ai fait un projet de test de base qui inclut un fichier d'en-tête et la fonction principale exécute une méthode à partir de la classe incluse - tout en travaillant simplement bien, CLION Compiler est MINGW. P>

Maintenant, le vrai projet que j'ai besoin de travailler sur Intègre un SDK d'un fournisseur écrit en C ++. Ils ont aussi des exemples. Chaque fois que je les exécute, Clion rompt la construction et se plaint de références non définies ... Les chemins de fichier incluent sont tous corrects et CMAKelist.txt ressemble à ceci: p>

class SDK{
   ...
   SDK();
   ...
}


0 commentaires

3 Réponses :


0
votes

Je ne parle pas couramment la cmake - mais vous devez probablement aussi lier des bibliothèques / répertoires en utilisant quelque chose comme cible_link_libraries () / cible_link_directies () Si vous utilisez un SDK externe. Il me semble que vous disiez simplement au compilateur "Hey, voici mon en-tête SDK, fais quelque chose" mais Compiler ne sait pas où sont définis les symboles de ce SDK. Voici un peu d'explication Qu'est-ce que c'est La différence de base entre les deux , mais je recommande de vérifier directement la documentation CUKE.

c̛̣o̢̥m̯͕̖̠̙͡p͕̭͚͓̮ḭ͓͇͔̟̫l̪͈i͉̟̜̺͖͓͉n̮̻̼g͎̩̳̯ ̻̯̹̦̠w͕̬̜i̖̭̣̖̭̣̮̻̼a̮̹͉̻̥̥ķ͕̤̭̠͚e̩̙̼ ̫̮is̻̗͈͓͟ f̧̮͓̦u͏̯ń̹̣


0 commentaires

0
votes

Je n'ai aucune idée de la manière dont la bibliothèque que vous utilisez est conçue, mais s'il n'y a pas de définition du constructeur dans le fichier d'en-tête, il n'est clairement pas en tête-à-tête uniquement. Donc, vous devez soit faire un lien vers cette bibliothèque, soit ajouter son fichier de mise en œuvre (si vous en avez un) à votre projet afin que la lieur reçoit ce que vous avez promis. Je suggère de regarder cible_link_libraires pour voir comment créer un lien dans CMAKE (il y a plus de moyens de le faire).

Une erreur de référence non définie signifie généralement que la liaison n'a pas trouvé quelque chose qui a été annoncé dans un en-tête.


0 commentaires

0
votes

La solution consistait à compiler les Libs du fichier .CPP à créer un fichier CMAKELIST propre référençant ces Libs, cela résolva ensuite les erreurs de référence non définies.


1 commentaires

Veuillez mettre à jour votre question pour contenir votre réponse (si vous avez trouvé la réponse vous-même). De cette façon, il est plus facile pour les autres de trouver la solution.