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.
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]
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.
..du projet QT creator
- goto projectName.pro de gauche du menu
- type LIBS +=
- clic droit AddLibrary
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
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...