2012-04-13 10 views
15

Non ho potuto includere boost in xcode. Ho usato le istruzioni di compilazione dalla documentazione Boost e ho scritto i percorsi di ricerca in xcode/usr/local/lib e/usr/local/include.Include boost in xcode

Qualsiasi aiuto per favore!

risposta

9

sto usando spinta con Xcode 3.2.1 su Mac OS 10.6.8

Ho avuto problemi con l'utilizzo di boost e Xcode oggi, finalmente sono riuscito a farlo funzionare quindi spero che questo aiuti:

  1. scaricare spinta, ho avuto la 1.52.0 oggi, estrailo

  2. installare spinta:

    in un primo momento non ho potuto fare il ./bootstrap.sh, si è fermato dopo le prime righe. Dopo aver cercato su Google, ho ottenuto la risposta, perché quando ho installato Xcode molto tempo fa, per qualche motivo non ho verificato lo "sviluppo di Unix" nelle opzioni di installazione.A questo punto, reinstallare una nuova versione di Xcode e controllare la "linea di sviluppo UNIX"

    dopo che, il ./bootstrap e ./b2 installazione è funzionato bene

  3. l'esempio lambda:

    a questo punto, il primo esempio dovrebbe funzionare bene, se non provare ad aggiungere /usr/local/include nel percorso di impostazioni di progetto/ricerca intestazione

  4. con filo o qualcos'altro che richiede di essere costruita

    I thread

    richiedono un dylib specifico per funzionare: libboost_system.dylib. sul mio sistema si trovava in /usr/local/lib dopo la ./b2 install thingy

    nella parte sinistra della GUI, è possibile fare clic destro ovunque e selezionare Aggiungi file esistente

    se il file è attivo si può trovare una scorciatoia per ottenere a usr/local/lib nella directory /Developer/SDKs/MacOSX10.6.sdk/usr/local

una volta che il libboost_system.dylib viene visualizzato nella parte gruppi e file della GUI, dovrebbe funzionare

+0

Perfetto, vorrei poterti dare +10 per mantenere il mio ego di imparare C++ vivo questo venerdì sera! – CjCoax

30

Ho passato molto tempo a provare a farlo funzionare. Non riuscivo a farlo funzionare con il download dal sito del progetto Boost, così ho usato homebrew invece:

Dopo homebrew è installato, ho installato Boost utilizzando:

brew install boost 

o, se non si dispone di python installato, usando:

brew install boost --without-python 

Senza il --without-python non si installerebbe sulla mia macchina.

  1. In XCode (4.3.3), selezionare il file di progetto nella barra laterale sinistra (in alto nella parte superiore) e selezionarlo di nuovo nel riquadro del progetto.
  2. Selezionare la scheda Impostazioni di generazione e selezionare Tutto.
  3. In Percorsi di ricerca, aggiungere il percorso di ricerca dell'intestazione /usr/local/Cellar/boost/1.49.0/include/ e selezionare la casella. Il percorso dovrebbe ora mostrare nelle impostazioni di compilazione.

Ora, è possibile utilizzare:

#include <boost/regex.hpp> 

o qualsiasi altra cosa è necessario dal pacchetto Boost.


Nel caso in cui si è spinta già installato, utilizzare $ brew info boost per ottenere il percorso corretto:

boost: stable 1.60.0 (bottled), HEAD 
Collection of portable C++ source libraries 
https://www.boost.org/ 
/usr/local/Cellar/boost/1.60.0_1 (11,139 files, 436.5M) * 
    Poured from bottle 
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/boost.rb 
+2

Nizza ! Questo ha funzionato per me in XCode 5 anche se ho aggiunto a '/ include /', non con la directory boost. – Claudiu

+0

Ho creato un collegamento simbolico nel mio homedir alla cantina/boost/1.49.0 dir – neoneye

+0

Il mio percorso di ricerca dell'intestazione è simile a questo: $ (HOME)/boost_1_57_0/include – neoneye

5
[email protected]: ~/work $ brew install boost 
[email protected]: ~/work $ ls -l /usr/local/include/boost 
lrwxr-xr-x 1 mic wheel 36 Nov 27 01:06 /usr/local/include/boost -> ../Cellar/boost/1.56.0/include/boost 

hi, aggiungo /usr/local/include a Header Search Paths (con doppio clic su di esso, ma altri controlli sub Debug o), poi

#include <boost/asio.hpp> 
#include <boost/date_time.hpp> 

using namespace boost; 

int main() { 
    asio::io_service io; 

    io.run(); 
    return 0; 
} 

lavorato,: D

+0

Perché 'ls -l', e non' ln -s'? –

+0

@IgorGanapolsky Si prega di '$ man ls' – micfan

5

ho seguito grande post di henrikstroem, in questo modo:

installare tramite homebrew, ha preso meno di 3 minuti

mac:~ woz$ brew install boost 
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/boost-1.57.0.yosemite.bottle.tar.gz 
######################################################################## 100.0% 
==> Pouring boost-1.57.0.yosemite.bottle.tar.gz 
    /usr/local/Cellar/boost/1.57.0: 10572 files, 439M 
mac:~ woz$ 

Creare link simbolico nella vostra directory home

mac:~ woz$ cd 
mac:~ woz$ ln -s /usr/local/Cellar/boost/1.57.0 boost_1_57_0 
mac:~ woz$ 

All'interno Xcode fare riferimento al collegamento simbolico appena creato come questo

Xcode build settings for boost

Per l'Header Search Paths uso $(HOME)/boost_1_57_0/include

Per l'Library Search Paths uso $(HOME)/boost_1_57_0/lib

+0

Sto cercando di replicare questo per' bind' ma si rifiuta di lavorare, il '#include ' continua a essere contrassegnato come "file non trovato" . –