2009-12-31 3 views

Répondre

5

Une bibliothèque se compose de deux composants principaux: les fichiers d'en-tête C et l'archive de code objet compilée. GCC a un nombre déconcertant de façons de spécifier ces choses, mais disons que vous utilisez une bibliothèque foo.a qui vit dans le chemin d'accès relatif foo/lib, et un en-tête foo.h qui vit dans foo/inc. Votre propre code C vit dans main.c et ressemble à ceci:

#include "foo.h" 
int main() { 
    return FooFunc(); // call function in foo.a 
} 

Pour compiler, vous pouvez utiliser la ligne de commande:

gcc main.c -Ifoo/inc foo/lib/foo.a -o main.exe 

le drapeau -I ajoute au chemin recherché des en-têtes. Vous pouvez également ajouter au chemin de lib, mais alors les choses commencent à se compliquer :-)

+0

+ 1, c'est utile! Mais pouvez-vous le rendre plus général? Dire si je veux inclure 2 bibliothèques à partir de deux répertoires différents.BTW, semble pas chaque bibliothèque se compose de * .h et * .a, au moins je ne vois que * .a et *.o sous MinGW/lib? – user198729

+0

Pour spécifier d'autres chemins d'inclusion, utilisez d'autres indicateurs -I pour spécifier d'autres bibliothèques, spécifiez-les sur la ligne de commande. À la fin de la journée, SO n'est pas un site de tutoriel - lisez le manuel de GCC et éventuellement un livre, comme http://www.network-theory.co.uk/gcc/intro. –

2

Aucun différent de tout autre système utilisant gcc

  • obtenir les sources
  • untar
  • exécuter le script configure - cela peut nécessiter un tweak ou deux
  • font
  • make install

et utilisez maintenant votre nouveau bibliothèque avec des commutateurs -Lfoo/bar -lfoobar appropriés.

Je recommande le système MSys autour de MinGW afin de faire tout cela.

+0

Oh, j'ai oublié de mentionner que j'utilise Windows XP, pouvez-vous être plus précis sur les détails? – user198729

+0

Vous avez besoin d'un livre (ou tutoriel web) sur le développement de code avec les outils Unix. Il n'y a rien de spécifique à Windows XP ici, mis à part le fait que vous essayez d'apprendre un workflow qui n'est pas courant sur Windows. Vous faites la bonne chose ici, mais vous avez plus ou moins besoin de savoir comment cela fonctionne sur Linux/Unix pour en déduire comment cela se fait sous XP. Il suffit de trouver un tutoriel décent quelque part ... –

1

Je viens juste de me débrouiller tout seul. Je recommande fortement de lire le linking howtos sur la page Web MinGW. Lisez-les attentivement car il y a beaucoup de choses à prendre en compte. Ils sont assez approfondis, donc ça vaut vraiment le coup.

Il existe essentiellement deux façons de faire les choses. Tout d'abord, vous pouvez juste considérer MinGW comme un compilateur, parce que c'est ce que c'est, et l'invoquer depuis cmd.exe (l'invite de commande) ou un IDE. L'autre façon de le faire est d'utiliser MSYS qui est essentiellement un shell de style Unix que vous pouvez utiliser sous Windows pour utiliser des outils de construction de style Unix comme configure et make.

Pour l'un ou l'autre, vous devez vraiment lire la procédure ci-dessus pour comprendre comment les chemins de dépendances sont recherchés. J'hésite à l'expliquer ici car il est déjà expliqué dans les howtos et la duplication de cette information n'est pas une bonne idée. Si vous avez des questions spécifiques après les avoir lues, je serais heureux d'offrir plus d'aide.

Questions connexes