2015-04-01 3 views
9

Qualcuno è riuscito a utilizzare Cocoapods con il pod Boost?Come utilizzare Boost con Cocoapods su IOS?

Non capisco, non sembra installare completamente. Dopo l'installazione di pod in un progetto vuoto ottengo il sotto. C'è un passo che mi manca?

enter image description here

Questa è l'uscita dal mio installare

pod installare --verbose

Analyzing dependencies 

Updating spec repositories 
    $ /Applications/XCode.app/Contents/Developer/usr/bin/git rev-parse >/dev/null 2>&1 
    $ /Applications/XCode.app/Contents/Developer/usr/bin/git rev-parse >/dev/null 2>&1 
Updating spec repo `master` 
    $ /Applications/XCode.app/Contents/Developer/usr/bin/git pull --ff-only 
    Already up-to-date. 

CocoaPods 0.36.3 is available. 
To update use: `gem install cocoapods` 

For more information see http://blog.cocoapods.org 
and the CHANGELOG for this version http://git.io/BaH8pQ. 


Inspecting targets to integrate 
    Using `ARCHS` setting to build architectures of target `Pods`: (``) 
    Using `ARCHS` setting to build architectures of target `Pods-PodBoost`: (``) 

Resolving dependencies of `Podfile` 
Starting resolution (2015-04-01 15:48:56 +0300) 
Creating possibility state for boost (~> 1.57) (1 remaining) 
    Attempting to activate boost (1.57.0) 
    Activated boost at boost (1.57.0) 
    Requiring nested dependencies (boost/string_algorithms-includes (= 1.57.0), boost/shared_ptr-includes (= 1.57.0), boost/pointer_cast-includes (= 1.57.0), boost/numeric-includes (= 1.57.0), boost/preprocessor-includes (= 1.57.0), boost/math-includes (= 1.57.0), boost/graph-includes (= 1.57.0)) 
    Creating possibility state for boost/string_algorithms-includes (= 1.57.0) (1 remaining) 
    Attempting to activate boost/string_algorithms-includes (1.57.0) 
    Activated boost/string_algorithms-includes at boost/string_algorithms-includes (1.57.0) 
    Requiring nested dependencies() 
    Creating possibility state for boost/shared_ptr-includes (= 1.57.0) (1 remaining) 
     Attempting to activate boost/shared_ptr-includes (1.57.0) 
     Activated boost/shared_ptr-includes at boost/shared_ptr-includes (1.57.0) 
     Requiring nested dependencies() 
     Creating possibility state for boost/pointer_cast-includes (= 1.57.0) (1 remaining) 
     Attempting to activate boost/pointer_cast-includes (1.57.0) 
     Activated boost/pointer_cast-includes at boost/pointer_cast-includes (1.57.0) 
     Requiring nested dependencies() 
     Creating possibility state for boost/numeric-includes (= 1.57.0) (1 remaining) 
      Attempting to activate boost/numeric-includes (1.57.0) 
      Activated boost/numeric-includes at boost/numeric-includes (1.57.0) 
      Requiring nested dependencies() 
      Creating possibility state for boost/preprocessor-includes (= 1.57.0) (1 remaining) 
      Attempting to activate boost/preprocessor-includes (1.57.0) 
      Activated boost/preprocessor-includes at boost/preprocessor-includes (1.57.0) 
      Requiring nested dependencies() 
      Creating possibility state for boost/math-includes (= 1.57.0) (1 remaining) 
       Attempting to activate boost/math-includes (1.57.0) 
       Activated boost/math-includes at boost/math-includes (1.57.0) 
       Requiring nested dependencies() 
       Creating possibility state for boost/graph-includes (= 1.57.0) (1 remaining) 
       Attempting to activate boost/graph-includes (1.57.0) 
       Activated boost/graph-includes at boost/graph-includes (1.57.0) 
       Requiring nested dependencies() 
Finished resolution (8 steps) (Took 0.007472 seconds) (2015-04-01 15:48:56 +0300) 
Unactivated: 
Activated: boost, boost/string_algorithms-includes, boost/shared_ptr-includes, boost/pointer_cast-includes, boost/numeric-includes, boost/preprocessor-includes, boost/math-includes, boost/graph-includes 

Comparing resolved specification to the sandbox manifest 
    A boost 

Downloading dependencies 

-> Installing boost (1.57.0) 
> Http download 
    $ /usr/bin/curl -f -L -o /Users/ryanheitner/Projects/PodBoost/Pods/boost/file.tgz "http://sourceforge.net/projects/boost/files/boost/1.57.0/boost_1_57_0.tar.gz" --create-dirs 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
            Dload Upload Total Spent Left Speed 
    0 353 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0 
    0 423 0  0 0  0  0  0 --:--:-- --:--:-- --:--:--  0 
    0 337 0  0 0  0  0  0 --:--:-- 0:00:01 --:--:--  0 
100 70.0M 100 70.0M 0  0 2744k  0 0:00:26 0:00:26 --:--:-- 3007k 
    $ /usr/bin/tar xfz /Users/ryanheitner/Projects/PodBoost/Pods/boost/file.tgz -C /Users/ryanheitner/Projects/PodBoost/Pods/boost 
    - Running pre install hooks 

Generating Pods project 
    - Creating Pods project 
    - Adding source files to Pods project 
    - Adding frameworks to Pods project 
    - Adding libraries to Pods project 
    - Adding resources to Pods project 
    - Linking headers 
    - Installing targets 
    - Installing target `Pods-PodBoost` iOS 8.2 
    - Running post install hooks 
    - Writing Xcode project file to `Pods/Pods.xcodeproj` 
    - Writing Lockfile in `Podfile.lock` 
    - Writing Manifest in `Pods/Manifest.lock` 
+0

Supponendo che non sia stato interrotto il lungo processo di installazione a causa di un insieme piuttosto grande di file, la risposta è sotto. – SwiftArchitect

risposta

2

Perché il Pod non è elencato?

Questo è un artefatto di boost non essendo un progetto Xcode, ma solo un insieme di file. Inoltre, la directory interna boost si trova correttamente all'interno di ${PODS_ROOT}/boost, con riferimento in Percorso di ricerca intestazione di Impostazioni di creazione. Questo è ciò che ottieni usando il Pod.

Pod & gerarchia Boost

è necessaria la nidificazione di boost in ../Pods/boost/boost per consentire i file nella libreria di fare riferimento a se stessi come a:

#include "boost/date_time/posix_time/posix_time_config.hpp" 

Se si lascia che l'operazione completa: (il boost biblioteca è ben più di 100 MB quando zippato)

Downloading dependencies 
Installing boost (1.57.0) 
Generating Pods project 
Integrating client project 

... il tempo y ou non lo vedo nel progetto, troverete che è nella struttura di origine:

enter image description here

è possibile farvi riferimento:

#import "boost/date_time.hpp" 

e iniziare a trattare con altre questioni urgenti, come la localizzazione #include <cstdlib>, che è interamente un altro argomento.

Objective-C++ Compilation

Per compilare boost, che è una libreria C++, è necessario fare riferimento in modo esplicito ad esso da file C++ di origine (non C fonti, che sono il default in .m) o adottare soluzioni alternative elencate in compiling a C++ class in Xcode: error during compilation: stl vector.

da un file .mm, includono queste righe due prove:

#include <cstdlib> // Proof of concept 
#import "boost/date_time.hpp" 

Per il bene di questo esempio, ho rinominato main.m in main.mm. Dal momento che il Pod non ha importato alcun file .ipp, si potrebbe aggiungere NO_BOOST_DATE_TIME_INLINE=1 in macro del preprocessore in Creare Impostazioni. In questo modo, riceverai una dozzina di avvisi, come quello riportato di seguito, e una compilation di successo, senza importazione manuale.

conversione implicita perde precisione intero: 'lunga' a 'hour_type' (aka 'int')


Edit: cancellato un manuale di importazione off-topic, non richiesto


+1

Ho seguito le tue istruzioni e poi quando aggiungo #import "boost/date_time.hpp" al mio file MyObject.mm fallisce in gregorian_calendar.hpp con #include "boost/date_time/gregorian_calendar.ipp" file non trovato –

+0

Fammi capire Questo. Devi eliminare (rimuovere il riferimento) per potenziare e quindi riaggiungerlo nuovamente al progetto come non pod? Sembra che usare un boost.framework sia la strada da percorrere e Cocoapods non è adatto per una biblioteca così grande. –

+0

Non so davvero se accettare la tua risposta o meno. Apprezzo lo sforzo che ci avete dedicato ma non sono sicuro che ci sia una risposta più soddisfacente. –