web-dev-qa-db-fra.com

comment compiler DLIB pour iOS

J'essaie de construire DLIB pour un projet iOS. L'exécution de cmake donne lieu à un libdlib.a et à une charge de fichiers .o.

Lorsque j'ajoute la bibliothèque à un projet Xcode, je suis averti que la bibliothèque n'a pas été construite pour arm64.

Ma question est en deux parties:

  1. Comment puis-je créer DLIB pour iOS (j'ai essayé cmake **path_to_source** -DCMAKE_OSX_ARCHITECTURE="arm64" mais cela a causé beaucoup d'erreurs, par exemple unknown type name '__uint32_t'; did you mean '__uint128_t')?
  2. Quel est le but de tous les fichiers .o qui sont générés lorsque vous exécutez cmake? Dois-je les inclure dans un projet Xcode?
15
Rob Sanders

J'ai enfin compris comment faire cela:

Exigences

  • X11 (sur un mac, vous pouvez simplement ouvrir l’application X11 et si X11 n’est pas installé, cela vous mènera au téléchargement).
  • Xcode
  • cmake (vous pouvez utiliser home-brew pour cela)

Pas

  • Dans le terminal faites le lib-xx.xx/examples votre racine
  • Courir:

    mkdir build

    cd build

    cmake -G Xcode ..

    cmake --build . --config Release

Cela créera un dossier appelé dlib_build dans lequel vous pourrez trouver un projet Xcode qui compile la bibliothèque. Dans les paramètres de construction de ce projet Xcode, vous pouvez définir l'architecture de construction et le SDK pour tout système d'exploitation pris en charge par Xcode que vous aimez!

MODIFIER:

Vous devez inclure de nombreux indicateurs de compilateur personnalisés et des bibliothèques tierces pour que dlib fonctionne dans un projet. Consultez les paramètres de construction examples.xcproject.

19
Rob Sanders

Pour compléter la réponse de RASS, je joins des captures d'écran montrant comment changer cela vers et depuis une bibliothèque iOS et OSX 

Après l'ouverture du projet, 

  1. Sélectionnez le fichier de projet dans le navigateur de projet. 
  2. Sélectionnez la cible dlib tout en bas
  3. Sélectionnez 'Paramètres de construction'
  4. Développer le menu déroulant "Base SDK"

 enter image description here

  1. Sélectionnez iOS ou Mac OS (OSX)

 enter image description here

J'espère que cela aide certaines personnes! gl

9
mylogon

Rob Sanders et mylogon montrent déjà comment compiler dlib pour iOS, voici comment l’utiliser:

  1. ajoutez libdlib.a au projet et ajoutez le chemin aux chemins de recherche de la bibliothèque
  2. ajoute toutes les sources à inclure dans le répertoire (ne pas ajouter au projet), et ajoute le chemin d'accès aux chemins de recherche d'en-tête.
  3. ajouter un cadre accéléré, qui contient des symboles blas.
  4. ajouter des macros de préprocesseur, à partir des paramètres de construction, "indicateur de compilateur personnalisé"/"autres indicateurs c". ces macros s'assurent que les fichiers d'en-tête correspondent à la bibliothèque.

    -DDLIB_JPEG_SUPPORT
    -DDLIB_NO_GUI_SUPPORT
    -DNDEBUG
    -DDLIB_USE_BLAS
    -DDLIB_USE_LAPACK
    
0
lbsweek