2016-09-10 3 views
2

J'essaye de lier Qt avec le SDK d'appareil photo Pylon dans un projet Qt Creator.Impossible de lier Pylon (Basler) SDK avec Qt sur Mac

J'installe l'application Pylon Camera Software Suite à partir de ce pylon for OS X et l'ossature de pylône est installée au /Library/Frameworks/pylon.framework.

Je suis d'abord le pylon Programmer's Guide qui est installé avec l'application pour relier le pylône avec Xcode. Cela fonctionne parfaitement.

Ensuite, j'essaie de créer un lien avec mon projet Qt. J'ajoute ceci dans le fichier .pro:

mac: LIBS += -F/Library/Frameworks/ -framework pylon 

# add GenICam because pylon Programmer's Guide do so 
INCLUDEPATH += /Library/Frameworks/pylon.framework/Headers/GenICam 
DEPENDPATH += /Library/Frameworks 

Mais cela ne fonctionne pas. Qt ne peut pas trouver les fichiers d'en-tête.

J'essaie aussi:

QMAKE_LFLAGS += -F/Library/Frameworks/ 
LIBS += -framework pylon 

comme indiqué dans le document Using Frameworks. Mais ne fonctionne toujours pas. Quelqu'un m'aidera à résoudre ce problème? Merci.

Mise à jour:

étrange est que Qt peut détecter l'auto-complétion des fichiers d'en-tête, mais quand il est dit build tel fichier trouvé. enter image description here

+0

Si elle répond à votre question, s'il vous plaît choisir la bonne réponse en cliquant sur la coche à côté du vote – PnotNP

Répondre

0

Il existe un automatisme dans Xcode lorsque vous insérez un framework, il inclut automatiquement le répertoire d'en-tête des frameworks utilisés.

Dans votre cas, ajoutez simplement cette ligne et le compilateur trouvera les en-têtes du pylône.

QMAKE_CXXFLAGS += -F/Library/Frameworks 

J'espère que cela va vous aider. Avec mes meilleures salutations

+0

Ce n'est peut-être pas un bon moyen puisque les en-têtes de l'API de pylone utilisent tous la forme '#include ', ce qui signifie que vous ne devez pas spécifier le chemin vous voulez utiliser l'existant A PI. Vous devez donc lier le framework, pas seulement les fichiers head. – Galaxy

+0

Selon la documentation d'Apple. La première entrée dans un e.g. #include est le nom du framework. Voir aussi https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPFrameworks/Tasks/IncludingFrameworks.html#//apple_ref/doc/uid/20002257-BAJJBBHJ –

1

Je viens de répondre ce here:

A) Si vous compilez ce cadre Pylône avec la source puis Dans ces cas, vous avez besoin d'installation de code source, vous devez aller à votre Pylône répertoire source, par exemple:

<path-to-pylon>/src/include/ 

Vous pouvez localiser le répertoire où PylonIncludes.h est installé par runing la commande suivante:

find <path-to-Pylon> -name PylonIncludes.h 

Une fois que vous avez localisé le répertoire, par ex. disons /Users/kevin/Pylon5.5 alors vous ajoutez ajouter la ligne suivante dans votre CMAkeLists.txt

INCLUDEPATH += /Users/kevin/Pylon5.5/src/include/ 

B) Si vous avez cadre binaire lui-même, alors vous pouvez contourner en copiant tous les en-têtes à tmporary emplacement sous pylon/<all-headers>

cp -rf /Library/Frameworks/pylon.framework/Versions/A/Headers/* /tmp/pylonHeaders/pylon/ Then use following in .pro file 

    INCLUDEPATH += /tmp/pylonHeaders 
    LIBS += -framework pylon