Alors maintenant, j'ai un arbre de programmes qui contientConstruire un fichier .so à partir de plusieurs fichiers C++ et utiliser
outter.cc, outter.h
b.cc, b.h
c.cc, c.h
et chacun de ces .cc
fichiers ressembler à ceci:
outter.cc:
#include "b.h"
// do something
b.cc
#include "c.h"
// do something
c.cc
//do something
En outer.cc
est un tas de définitions de l'API. Je veux générer un fichier .so afin que d'autres personnes puissent utiliser mon API lorsqu'ils lient leurs programmes avec ce fichier .so.
donc mes questions:
Comment générer ce fichier .so? Je suis fondamentalement "emballage" tout le code dans un fichier .so
Si j'ai réussi à générer ce fichier .so, comment l'utiliser? Dites que j'ai un fichier
main.cc
dans un autre répertoire/home/xavier/test/
et j'ai aussi le fichier .so généré en/home/xavier/test/
. Comment dois-je écrire cemain.cc
et comment dois-je compiler ce fichier main.cc pour qu'il utilise mon API défini dans outter.cc?
J'utilise Mac OS X et g ++
Merci!
Et si l'API 'outer.h' est conçue pour cacher les internes et les types de' bh' et 'ch', alors main.cc n'aura besoin que de' #include '. –
Merci pour votre réponse! Encore une question! Que faire si 'b.h, c.h' et' outter.h' ont un répertoire différent? Que dois-je faire avec le '-I (votre chemin de fichier d'en-tête)'? – Xavier
@ConradParker Merci pour vos commentaires. Oui 'outter.h' est censé cacher les détails de' b.h' et 'c.h' aux utilisateurs de l'API. Mais pouvez-vous être plus précis sur "conçu pour cacher les internes et les types"? Un exemple serait génial. – Xavier