2010-05-29 7 views
3

J'ai deux bibliothèques précompilées: X.a et Y.a et un code source test.cpp (sans fonction principale) utilise ces deux bibliothèques.lier les fichiers .a et .o dans GCC

Je compilé en C++ en utilisant:

g++ -c test.cpp

et je suis 'test.o'.

Maintenant, comment puis-je lier ces trois ensemble pour générer un fichier .a car test.cpp utilise une fonction dans X.a et Y.a et d'autres bibliothèques GCC?

BTW, je le fais sous Windows en utilisant MinGW. Puis-je renommer ce fichier en .lib et utiliser ce fichier .lib dans VC?

Merci!

Répondre

5

Maintenant, comment puis-je relier ces trois ensemble pour générer un fichier .a parce test.cpp utiliser une fonction dans x.a et Y.Un et d'autres bibliothèques du CCG?

.a est rien de plus ar archives containg tous les fichiers objets (fichiers) .o

Puis-je renommer ce fichier .a .LIB et utilisent ce .lib dans VC?

Oui, mais cela nécessite un petit truc pour fonctionner. Voir: http://opensees.berkeley.edu/community/viewtopic.php?t=2267

3

Pour ajouter votre fichier objet à la bibliothèque statique, vous devez utiliser la commande suivante:

ar rcs X.a test.o 

Mais si vous sont fournis avec Xa et Ya Je suppose que vous n'êtes pas l'auteur de X et Y , donc je ne suis pas sûr que tu veuilles vraiment les rejoindre!

Vous pouvez décider de lier chaque fichier d'objet dans un seul exécutable, mais vous avez besoin de la fonction main!

EDIT: Je vous suggère également de lire this.

+0

Merci. Le problème est que j'ai besoin d'utiliser GCC pour obtenir une bibliothèque statique et utiliser VC pour lier cette bibliothèque statique comme j'ai fait quelques trucs fortran dans GCC .. –

+0

@David: malheureusement, je ne sais rien sur VC, mais il semble que vartec vous a donné quelques informations utiles. – Dacav

Questions connexes