2010-04-14 11 views
0

J'ai compilé srp-2.1.2 sous ubuntu en utilisant make, il crée un fichier libsrp.a. Quelqu'un peut-il me dire comment puis-je utiliser libsrp.a comme bibliothèque partagée?. Je veux utiliser libsrp dans un fichier C# sous Ubuntu en utilisant dllimport.please dites-moi quelle est la signification du fichier libsrp.a.bibliothèque partagée sous Ubuntu

grâce

ok lorsque j'utilise nm -D libsrp.a alors j'ai

c2 @ ubuntu: ~/Bureau/srp-2.1.2/libsrp $ nm -D libsrp.a

t_client.o: nm: t_client.o: Aucun symbole

s'il vous plaît me dire comment je vais obtenir tous les symboles.

grâce

Répondre

0

Le fichier libsrp.a est une bibliothèque statique; une bibliothèque partagée serait appelée quelque chose comme libsrp.so. Here il y a une réponse qui décrit un moyen de construire une bibliothèque partagée à partir d'une bibliothèque statique (je ne l'ai jamais fait moi-même, donc ne peut pas se porter garant que cela fonctionne - bonne chance!)

MISE À JOUR:

en utilisant nm avec l'argument -D demande des symboles dynamiques (consultez man nm) - à la question que je lié au gars utilisait -D comme il invoquait nm sur une bibliothèque partagée . Votre libsrp.a est une bibliothèque statique, pour voir les symboles que vous devez juste faire

nm libsrp.a 

Cependant, je ne pense pas que vous avez besoin de voir les symboles à utiliser la réponse expliquant comment obtenir une bibliothèque partagée ; Si la réponse est correcte, vous devrez juste appeler gcc avec les bons arguments. Je suppose qu'une fois que vous avez la bibliothèque partagée, vous pouvez utiliser nm pour voir si elle a les symboles que vous attendez; dans ce cas vous aura besoin de l'argument -D:

nm -D libsrp.so 
Questions connexes