Utilisation d'une bibliothèque statique dans Qt Creator

j'ai du mal à trouver de la documentation qui explique clairement comment utiliser une bibliothèque statique dans Qt Creator.

j'ai créé et compilé Ma bibliothèque statique en utilisant Qt Creator (New=>ProjectsC++ Library=>définir le type de "bibliothèque liée statiquement"). Il compile et crache un ".fichier."

le problème que je rencontre est lorsque j'essaie d'utiliser la bibliothèque. J'ai un autre projet que vous souhaitez l'utiliser (#inclure des fichiers dans la bibliothèque, etc) mais je ne sais pas la bonne façon de le lien avec la bibliothèque, ou d'inclure des fichiers de la bibliothèque.

35
demandé sur demonplus 2009-09-01 12:25:03

5 réponses

LIBS += -L[path to lib] -l[name of lib]

Remarque! ce nom de fichier lib: lib [nomoflib].un et vous devez passer seule partie originale -l[nameOfLib]

34
répondu Dewfy 2009-09-01 08:42:23

Dans votre projet qui utilise la bibliothèque font l' LIBS variable point à votre lib du chemin.

Pour inclure des fichiers de la bibliothèque, ajoutez le dossier de la bibliothèque au INCLUDEPATH et ensuite faire un #include régulier dans vos fichiers de code.

e.g:

# the binary's .pro  
LIBS += c:/mylibs/math.lib
INCLUDEPATH += c:/mylibs

Édition:

-L dit à qmake que le chemin est un répertoire qu'il peut rechercher des bibliothèques -l lui dit que le chemin est un fichier, l'observation ci-dessous.

qmake docs:

Cette variable contient une liste de bibliothèques à relier dans le projet. Vous pouvez utiliser le Unix-l (bibliothèque) et L (chemin de la bibliothèque) drapeaux et qmake fera la bonne chose avec ces bibliothèques sur Windows (à savoir que cela signifie passer le plein chemin de la bibliothèque de l'éditeur de liens). La seule limite à cela est la bibliothèque doit exister, pour qmake pour trouver quel répertoire a-l lib vit dans.

Note: sur Windows, en spécifiant les bibliothèques avec l'option-l, comme ci-dessus exemple, provoquera la bibliothèque avec le numéro de version le plus élevé à utiliser; par exemple, libmath2.lib pourrait potentiellement être utilisé au lieu de libmathlib. Pour éviter cette ambiguïté, nous vous recommandons expressément spécifiez la bibliothèque à utiliser par y compris l' .nom du fichier lib suffixe.

16
répondu rpg 2009-09-01 09:28:41

..du projet QT creator

  1. goto projectName.pro de gauche du menu
  2. type LIBS +=
  3. clic droit AddLibrary
12
répondu Cavalieri Giovanni 2011-08-11 23:16:38

La variante

 LIBS += -L[PATH_TO_LIB_DIR] -l[LIBNAME] 

ne fonctionne pas si vous avez à la fois statique libLIBNAME.a et dynamique libLIBNAME.so libs dans le même dossier PATH_TO_LIB_DIR.

Dans ce cas, sur mon linux QMake v 3.0 la dynamique est liée par défaut.

la force de liaison statique un que vous devez spécifier explicitement sans aucune option.

LIBS += PATH_TO_LIB_DIR/libLIBNAME.a
7
répondu Temak 2015-05-14 11:14:28

Est-ce

LIBS += -L"/some path" -l"somename.a"

ou

LIBS += -L/somepath -lsomename.a

ou

LIBS += -L/somepath -lsomename"

cela devrait être aussi facile qu'il obtient, mais pour une raison quelconque, il est extrêmement difficile de tirer un résultat de recherche pour parce qu'il ya tellement de visites de forums de gens demandant de l'AIDE et j'ai suivi chaque conseil que je peux obtenir, mais pas d'aide...

2
répondu Know-One 2012-03-14 07:55:18