2012-06-13 9 views
6

Pasos: 1.
impulso sudo port
El archivo impulso instalado en/opt/local/refuerzo, archivos de la biblioteca se encuentran en/opt/local/lib

2. uso XCode para crear proyecto de C++
¿Cómo construyo programa de impulso simple en Mac OS (León)

#include <iostream> 
#include <boost/asio.hpp> 
int main() { 
    return 0; 
} 


3. conjunto XCode para averiguar impulso
en "Construir Configuración" -> "HEADER_SEARCH_PATHS"
en Debug and Release add path/opt/local/include

4. "Configuraciones de compilación" -> "LIBRARY_SEARCH_PATHS" -> add/opt/local/lib para depurar y liberar.

5. programa de construcción y error.
mensajes de error,

Undefined symbols for architecture x86_64: 
    "boost::system::generic_category()", referenced from: 
    ___cxx_global_var_init1 in main.o 
    ___cxx_global_var_init2 in main.o 
    "boost::system::system_category()", referenced from: 
    ___cxx_global_var_init3 in main.o 
    boost::asio::error::get_system_category() in main.o 
    "boost::asio::error::get_netdb_category()", referenced from: 
    ___cxx_global_var_init5 in main.o <br> 
    "boost::asio::error::get_addrinfo_category()", referenced from: 
    ___cxx_global_var_init6 in main.o <br> 
    "boost::asio::error::get_misc_category()", referenced from: 
    ___cxx_global_var_init7 in main.o <br> 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Estoy equivocado en el procedimiento?

+0

Esto parece para ser más como una pregunta sobre cómo vincular correctamente una biblioteca en un proyecto. La ruta no es suficiente, pero la biblioteca también debe ser especificada. – lpapp

Respuesta

8

es necesario enlazar con Boost.System, que debe estar en /opt/local/lib/libboost_system (con algún sufijo, que depende de cómo se construyó impulso)

añadir que a su proyecto de Xcode.

+0

Esto es correcto a pesar de la falta de aceptación. Lo espacié en los documentos pero, por supuesto, está [aquí] (http://www.boost.org/doc/libs/1_51_0/doc/html/boost_asio/using.html#boost_asio.using.dependencies). –

+0

¿Cómo agregas algo en/opt a tu proyecto XCode?/opt es una carpeta invisible. –

+0

@WarrenP Arrastro/opt/carpeta en el exterior del buscador como acceso directo. También muestro todos los archivos ocultos pero tampoco puedo mostrarlos en el panel de enlace de la biblioteca de Xcode. – CCC

4
  1. de selección en su sección "blancos"
  2. en "Enlace binario con las bibliotecas" en la pestaña "construir fases", agregue la biblioteca impulso.
  3. si instalar a través de MacPort, el impulso será a /opt/local/lib,
    si instalar a través de cerveza, el impulso habrá al /usr/local/Cellar/boost,
    si construir por sí mismo, será en /usr/local/lib by default o yourBoostLib/stage/lib
Cuestiones relacionadas