Comment puis-je créer un lien vers une bibliothèque avec Code::Blocks?
C++ GUI Tutoriel: undefined reference to TextOut
J'ai le même problème, mais je suis nouveau en programmation et Code::Blocks, et je veux utiliser le GDI32 de la bibliothèque. Comment puis-je l'installer? Je suis confondu parce que je peut utiliser le windows.h-tête, mais certaines fonctions comme TextOut
ne sont pas disponibles.
+1 Pour la recherche d'une réponse existant. Qui type de projet avez-vous sélectionnez lorsque vous avez créé votre CB projet?
OriginalL'auteur optimusfrenk | 2011-05-02
Vous devez vous connecter pour publier un commentaire.
La gdi32 bibliothèque est déjà installé sur votre ordinateur, peu de programmes s'exécutent sans elle. Votre compilateur (si installé correctement) normalement venir avec une bibliothèque d'importation, qui est ce que l'éditeur de liens utilise pour faire une liaison entre votre programme et le fichier dans le système. (Dans le cas peu probable que votre compilateur ne viennent pas avec les bibliothèques d'importation pour le système libs, vous aurez besoin de télécharger la Plate-forme Microsoft Windows SDK).
De lien avec gdi32:
Cette manière fiable le travail avec MinGW-gcc pour toutes les bibliothèques du système (il devrait fonctionner si vous utilisez un autre compilateur trop, mais je ne peux pas parler de choses que je n'ai pas essayé). Vous pouvez aussi écrire à la bibliothèque de son nom complet, mais l'écriture
libgdi32.a
a aucun avantage par rapport àgdi32
autre que d'être plus type de travail.Si elle ne pas fonctionner pour une raison quelconque, vous devrez fournir un nom différent (par exemple la bibliothèque est nommé
gdi32.lib
pour MSVC).Pour les bibliothèques dans quelques rares endroits ou un projet sous-dossiers, vous devrez fournir un bon chemin (cliquez sur le bouton "..." pour un fichier, sélectionnez la boîte de dialogue).
BTW, OP devrait changer de linker les paramètres pour l'ensemble du projet au lieu d'une seule cible. Cela peut être fait en cliquant sur le nom du projet à l'intérieur de
Project build options
fenêtre (My Project
sur la capture d'écran).Salut, j'ai eu un problème de liaison SDL et SDL_image, je vous remercie de cet exemple m'a beaucoup aidé.. btw dans certains exemples que j'ai vu de le dire, de faire le lien comme "-lSDL" et "-lSDL_image" mais c'est ok pour la ligne de commande. CodeBlocks ajoute l'option "-l" pour vous, de sorte que l'ajouter le nom de la bibliothèque, comme vous l'avez fait GDI32. Ils doivent expliquer ce qu'il y a beaucoup de noobies autour et se confondre. (J'ai été l'un) merci
Merci, Damon. à l'aide de cette solution, j'ai lié gdi32 bibliothèque dans mon projet. Mon projet de développement de l'OS est window7 et IDE est codeblock. Il résoudre mon erreur suivant: "undefined reference to getstockobject 4@"
OriginalL'auteur Damon
À deviner, vous avez utilisé Code::Blocks pour créer un projet d'Application Console. Un tel projet n'a pas de lien dans le GDI de trucs, parce que les applications de console ne sont généralement pas destinés à faire des graphiques, et
TextOut
est une fonction graphique. Si vous souhaitez utiliser les fonctionnalités de l'interface GDI, vous devez créer un Win32 Gui Projet, qui sera mis en place le lien dans le GDI pour vous.OriginalL'auteur Neil Butterworth
Pour résumer, le processus est nécessaire pour
l'utilisation d'une bibliothèque:
Une fois par bibliothèque:
1) Acquisition de la bibliothèque. Télécharger
à partir du site web ou par l'intermédiaire d'un
le gestionnaire de package.
2) Installer la bibliothèque. Décompressez l'archive sur un
répertoire ou de l'installer via un
le gestionnaire de package.
3) indiquer au compilateur où chercher
pour l'en-tête de fichier(s) pour la
de la bibliothèque.
4) Dire à l'éditeur de liens où chercher
pour le fichier de bibliothèque(s) pour la
de la bibliothèque.
Une fois par projet:
5) Dire à l'éditeur de liens qui statiques ou
importer des fichiers de bibliothèque de liens.
6) #inclure le library’s
l'en-tête de fichier(s) dans votre programme.
7) assurez-vous que le programme savoir
où trouver les dynamiques
les bibliothèques utilisées.
Les étapes 1 et 2 — Acquérir et
installer la bibliothèque
Télécharger et installer la bibliothèque
sur votre disque dur. Voir le tutoriel
sur la statique et la dynamique des bibliothèques
pour plus d'informations sur ce
étape.
Les étapes 3 et 4 — indiquer au compilateur
où trouver les en-têtes et
les fichiers de bibliothèque
Nous allons pour ce faire sur une
base globale, de sorte que la bibliothèque sera
disponible pour tous nos projets.
Par conséquent, les étapes suivantes
seulement besoin d'être fait une fois par
de la bibliothèque.
A) Allez dans le “menu des Paramètres” et
choisissez le “Compilateur”.
B) Cliquez sur l'onglet “Répertoires”. L'
compilateur onglet sera déjà
sélectionné pour vous.
C) Appuyez sur le bouton “Ajouter”, et
ajouter le chemin d'accès à l' .h pour les fichiers
de la bibliothèque. Si vous utilisez Linux
et installé la bibliothèque par l'intermédiaire d'un
gestionnaire de paquet, assurez-vous que /
usr/include est répertorié ici.
D) Cliquez sur le “Linker” onglet. Appuyez sur la
Bouton “ajouter”, et d'ajouter le chemin d'accès
à la .fichiers lib pour la bibliothèque. Si
vous êtes sous Linux et
installé à la bibliothèque via un package
manager, assurez-vous que /usr/lib est
énumérés ici.
E) Appuyez sur le bouton “OK”.
Étape 5 — Dire à l'éditeur de liens qui
les bibliothèques de votre programme à l'aide de
Pour l'étape 5, il faut ajouter les
les fichiers de bibliothèque à partir de la bibliothèque de
notre projet. Nous le faisons sur une
la base de projets individuels.
A) clic Droit sur le gras
nom du projet sous la valeur par défaut
espace de travail (probablement “de la Console
l'application”, sauf si vous avez changé
c'). Choisissez “Build options” de l'
le menu.
B) Cliquez sur l'onglet linker. En vertu de la
“Les bibliothèques de liens” de la fenêtre, appuyez sur
le bouton “Ajouter” et ajouter la
la bibliothèque vous souhaitez que votre projet de
utiliser.
C) Appuyez sur le bouton “OK”
Les étapes 6 et 7 — #inclure l'en-tête
fichiers et assurez-vous que le projet peut
trouver les Dll
Tout simplement #inclure le fichier d'en-tête(s)
à partir de la bibliothèque dans votre projet.
Source:
http://www.learncpp.com/cpp-tutorial/a3-using-libraries-with-codeblocks/
OriginalL'auteur Ammoni