Quelqu'un peut-il me dire comment créer une bibliothèque statique à partir d'une .rpc et une .php fichier? Dois-je créer les .o et le .un? Je voudrais aussi savoir comment puis-je compiler une bibliothèque statique et l'utiliser dans d'autres .rpc code. J'ai header.cpp
, header.hpp .
je voudrais créer header.a
. Test de l'en-tête.une en test.cpp
. J'utilise g++ pour compiler.
Réponses
Trop de publicités?Vous pouvez créer un .a
le fichier à l'aide de l' ar
utilitaire, comme suit:
ar crf lib/libHeader.a header.o
lib
est un répertoire qui contient tous vos bibliothèques. il est de bonne pratique pour organiser votre code de cette façon et de séparer le code et les fichiers de l'objet. Avoir tout dans un seul répertoire général semble laid. La ligne ci-dessus crée libHeader.a
dans le répertoire lib
. Donc, dans votre répertoire courant, faire:
mkdir lib
Puis exécuter le dessus ar
commande.
Lors de la liaison de toutes les bibliothèques, vous pouvez le faire comme ceci:
g++ test.o -L./lib -llibHeader -o test
L' -L
drapeau obtiendrez g++
ajouter l' lib/
répertoire du chemin. De cette façon, g++
sait ce répertoire à rechercher lors de la recherche d' libHeader
. -llibHeader
drapeaux de la bibliothèque de lien.
où test.o est créé comme suit:
g++ -c test.cpp -o test.o
Quelqu'un peut-il me dire comment créer une bibliothèque statique à partir d'une .rpc et un .php fichier? Dois-je créer l' .o et la la .un?
Oui.
Créer la .o (comme d'habitude):
g++ -c header.cpp
Créer l'archive:
ar rvs header.a header.o
Test:
g++ test.cpp header.a -o executable_name
Notez qu'il semble un peu inutile de faire une archive avec un seul module. Vous pourriez tout aussi bien avoir écrit:
g++ test.cpp header.cpp -o executable_name
Encore, je vais vous donner le bénéfice du doute que votre cas est un peu plus complexe, avec plus de modules.
Espérons que cette aide!